课时3
- 解决Struts 2配置文件无提示问题(eclipse):window→preference→XML→XML Catlog
课时4
- Action名称的搜索顺序
1.获得请求路径的URI,例如url是:http://server/struts2/path1/path2/path3/test.action
2.首先寻找namespace为/path1/path2/path3的package,如果不存在这个package则执行步骤3;如果存在这个package,则在这个package中寻找名字为test的action,当在该package下寻找不到action 时就会直接跑到默认namaspace的package里面去寻找action(默认的命名空间为空字符串“” ) ,如果在默认namaspace的package里面还寻找不到该action,页面提示找不到action
3.寻找namespace为/path1/path2的package,如果不存在这个package,则转至步骤4;如果存在这个package,则在这个package中寻找名字为test的action,当在该package中寻找不到action 时就会直接跑到默认namaspace的package里面去找名字为test的action ,在默认namaspace的package里面还寻找不到该action,页面提示找不到action
4.寻找namespace为/path1的package,如果不存在这个package则执行步骤5;如果存在这个package,则在这个package中寻找名字为test的action,当在该package中寻找不到action 时就会直接跑到默认namaspace的package里面去找名字为test的action ,在默认namaspace的package里面还寻找不到该action,页面提示找不到action
5.寻找namespace为/的package,如果存在这个package,则在这个package中寻找名字为test的action,当在package中寻找不到action或者不存在这个package时,都会去默认namaspace的package里面寻找action,如果还是找不到,页面提示找不到action。
课时5
- Action配置中的各项默认值
1 <package name="itcast" namespace="/test" extends="struts-default"> 2 <action name="helloworld" class="cn.itcast.action.HelloWorldAction" method="execute" > 3 <result name="success">/WEB-INF/page/hello.jsp</result> 4 </action> 5 </package>
1>如果没有为action指定class,默认是ActionSupport。
2>如果没有为action指定method,默认执行action中的execute() 方法。
3>如果没有指定result的name属性,默认值为success。
课时6
- Action中result的各种转发类型
result配置类似于struts1中的forward,但struts2中提供了多种结果类型,常用的类型有: dispatcher(默认值,内部请求转发)、 redirect(浏览器重定向)、 redirectAction 、 plainText。
- redirect(eg: http://localhost:8080/Struts2Demo/test/redirect→http://localhost:8080/Struts2Demo/employeeAdd.jsp?username=zzy)
域名传中文:URLencoder.encode("一二三",“UTF-8”)
页面传中文:<%=URLDecoder.decode(new String(request.getParameter("username").getBytes("ISO8859-1"),"UTF-8"),"UTF-8") %>
1 <action name="redirect" class="tutorial.HelloWorld" method="execute"> 2 <result type="redirect">/employeeAdd.jsp?username=${username}</result> 3 </action>
1 public String execute(){ 2 setUsername("zzy"); 3 return "success"; 4 }
2.redirectAction (重定向到某个Action)
1 <action name="redirectAction"> 2 <result type="redirectAction">redirect</result> 3 </action>
重定向到不同包的Action
1 <action name="redirectAction2"> 2 <result type="redirectAction"> 3 <param name="actionName">other</param> 4 <param name="namespace">/test2</param> 5 </result> 6 </action>
3.plainText(原样显示jsp文件源代)
1 <action name="plainText"> 2 <result type="plainText">/Test.jsp</result> 3 </action>
代码内有中文
1 <action name="plainText"> 2 <result type="plainText"> 3 <param name="location">/Test.jsp</param> 4 <param name="charSet">UTF-8</param> 5 </result> 6 </action>
- 全局视图(多个action中都使用到了相同视图)
若global-results在其他package里,则继承此package
1 <global-results> 2 <result name="manage">/Test.jsp</result> 3 </global-results> 4 5 <action name="result1" class="tutorial.HelloWorld" method="add"> 6 </action>
浙公网安备 33010602011771号