• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
zziy的java笔记
博客园    首页    新随笔    联系   管理    订阅  订阅
struts2视频学习笔记 03-06(Struts 2配置文件无提示问题,Action配置中的各项默认值,各种转发类型)

课时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。

  1.  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>

 

posted on 2015-10-09 10:15  zziy  阅读(221)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3