又一本springmvc学习指南 之---第22篇 springmvc 加载.xml文件的bean标签的过程
writedby 张艳涛,今天看spring mvc 学习指南的第2章,特意提下这个作者是how tomcat works 俩个作者之一,
喜欢上一本书的风格,使用案例来讲述原理,
在做第一个案例的时候发现了一些问题在此记录一下,
问题1,el表达式失效
解决方法1,在jsp页面加上<%@page isELIgnored="false"%>,因为在jsp2.0之前的规范不支持el表达式
<%@page isELIgnored="false"%> <!DOCTYPE html> <html> <head> <title>Save Product</title> <style type="text/css">@import url(css/main.css);</style> </head> <body> <div id="global"> <h4>The product has been saved.</h4> <p> <h5>Details:</h5> Product Name: ${product.name}<br/> Description: ${product.description}<br/> Price: $${product.price} </p> </div> </body> </html>
方法2, 在web.xml的<web-app>标签内加入版本信息
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" > <servlet> <servlet-name>ControllerServlet</servlet-name> <servlet-class>appdesign1.controller.ControllerServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ControllerServlet</servlet-name> <url-pattern>/appdesign1/*</url-pattern> </servlet-mapping> </web-app>
我做这个例子的时候是将他的webapp文件方法里tomcat的webapps目录下面的.作为tomcat的一个工程
这里遇到几个问题
- 每次tomcat编译新的class文件,org.apache.tomcat.xxx.xxx目录下的.properties文件都消失了?怎么回事
- 如果调试webpp,在idea中,如何添加web应用的源码
- 为什么eclipse不用添加web.xml来配置接入的ControllerServlet.class,
- 如果eclipse打包,生成的webapp.war中会有web.xml文件吗?
解答
问题1, idea的有针对这个的选项
问题2:将源码文件比如说原书中对应的源码在src/目录下面那么将src下面的文件拷贝到ida src/main/java/目录下就行了
问题3.这个不是eclipse的原因是serlvet3.0的特性支持,你在tomcat4中还不支持
@WebServlet(name = "ControllerServlet", urlPatterns = { "/input-product", "/save-product" })
这个注解就是对应了servlet标签
<servlet> <servlet-name>ControllerServlet</servlet-name> <servlet-class>appdesign1.controller.ControllerServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ControllerServlet</servlet-name> <url-pattern>/appdesign1/*</url-pattern> </servlet-mapping>
颜色相同的定义是一样的
比如你在tomcat4.0上这个注解是变红的
问题4,和问题3是一回事,你自己有web.xml,打包就有,没有不会给你生成,