5.Struts2主要配置文件及加载次序
由上到下,加载次序依次为:
struts-default.xml struts2的默认配置文件
struts-plugin.xml struts2框架的插件配置文件
struts.xml 主配置文件
default.properties 属性文件
web.xml
需要注意以下两点:
①如果在多个文件中配置了同一个struts2常量,则后一个文件中的配置的常量值会覆盖前面文件中配置的常量值
②推荐在struts.xml文件中配置struts2常量
6.中文乱码问题
在jsp页面中设置编码为utf-8,并且在struts.xml中配置
7.struts.xml简单配置
上面的例子中,一个包的namespace为user,另一个是admin。当普通用户登录时有一种跳转方式,当管理员登录时,有另一中跳转方式,这个时候包名就有作用,用来控制不同的用户登录。/login_success.jsp /login_failure.jsp /login.jsp /adminLogin.jsp
①管理员登录:
action="<%=path %>/admin/login.action"②普通用户登录:
action="<%=path %>/user/login.action"
另一方面,包之间还有继承的关系。如上面的例子中,user包继承自default包,这时default包中的global-results和action都被user包继承。
8.简单验证
第一步,需要在继承了ActionSupport的类中将验证信息加入,类似于键值对:
this.addFieldError("login_error", "用户名或密码错误");第二步,在jsp页面中取得验证信息,将信息传到前台页面显示:
9.Tomcat超链接传参中文乱码
在tomcat的配置文件server.xml中,加入URIEncoding="UTF-8":
default-action-ref,是默认的action配置,当你的URL没有任何匹配的时候,struts就会找到这个默认的action
11.通配符
/{1}_{2}_success.jsp
在struts.xml文件中包含其他xml文件:
13.Action访问web对象
①创建request,session,application这四个Map类型对象
②实现RequestAware,SessionAware,ApplicationAware接口
③创建传统的HttpServletRequest,HttpSession,ServletContext对象
④实现ServletRequestAware,ServletContextAware接口
实现接口的方式都是IOC方式,第二种方法与第四种方法的区别在于,第二种方法中request等的数据类型是Map,而第四种种,是传统的HttpServletRequest类型。
一般使用实现接口的方式,这样可以利用注入的方法。
14.Result类型
action默认的是dispatcher类型跳转;客户端跳转不能保存request里面的内容,而服务器端跳转可以;
①dispatcher 跳转到URL,服务器端跳转,通常是跳转到JSP页面
②redirect 重定向到URL,客户端跳转,通常是跳转到JSP页面
③chain 跳转到一个Action,服务器端跳转
④redirectAction 重定向到一个Action,客户端跳转