`
liuxinglanyue
  • 浏览: 565084 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

struts2的视图类型+中文编码+在struts.xml配置中如何传递action中的属性值

阅读更多

struts2是通过filter来初始化配置的,struts1 是通过servlet 加载配置的 

action名称的搜索路径,按包的顺序从里往外搜 

1>如果没有为action指定class,默认是ActionSupport。 
2>如果没有为action指定method , 默认执行action中的execute()方法 。 
3>如果没有为result指定name属性 , 默认为success 。 

视图类型 

1. 重定向的类型:dispatch(默认值),redirect(客户端跳转),redirectAction,plainText 

2 . 在action中的参数可以在result中间配置 

Java代码 
  1. <action name="list" class="cn.itcast.action.HelloWorldAction" method="execute">  
  2. <result name="success" type="redirect">/employeeAdd.jsp?username=${username}</result>  
  3. </action>  
(在action必须有getUsername()方法) 
与struts 1 相比,灵活性强,struts1 是在action中把参数设置在request中 ,然后在jsp页面上从request中获得 


3 . redirectAction:从一个action跳转到另一个action 
    访问不在同一包中的action 
   
Java代码 
  1. <action name="redirectAction">  
  2.             <result type="redirectAction">  
  3.                 <param name="actionName">xxx</param>  
  4.                 <param name="namespace">/control/department/xdsfdsfds/435435</param>  
  5.             </result>  
  6.     </action>  
4 . plainText:显示原始文件 
  
Java代码 
  1. <action name="plainText">  
  2.         <result type="plainText">  
  3.             <param name="location">/index.jsp</param>  
  4.             <param name="charSet">UTF-8</param><!-- 指定读取文件的编码 -->  
  5.         </result>  
  6. </action>   

5 . 定义全局视图 
    我们知道在包中可以定义<global-results> ,但只有包中的action共享这个视图,其他包无法访问 
    如何定义全局视图? 
    定义一个包 
  
Java代码 
  1. <package name="base" extends="struts-default">  
  2.         <global-results>  
  3.         <result name="message">/WEB-INF/page/message.jsp</result>  
  4.     </global-results>  
  5.    </package>  
    然后让其他的包都继承自这个包 
    <package name="itcast" namespace="/control/employee" extends="base"> 
    </package> 
    这样就所有的包都能共享这个视图 
    
6 . 在action中传递中文要转码,在jsp中要解码(只针对客户端的get方式跳转) 
     action中转码:
Java代码 
  1. this.username = URLEncoder.encode("传智播客""UTF-8");  
     jsp中解码:
Java代码 
  1. <%= URLDecoder.decode(new String(request.getParameter("username").getBytes("ISO8859-1"),"UTF-8"),"UTF-8") %>  
   
7 . 在result中如何传递多个参数 
    
Java代码 
  1. <result name="success" type="redirect">/employeeAdd.jsp?username=${username}&amp;id=${id}</result>  

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics