WebWork配置笔记

在标签方面,WebWork配置这几个标签是有严格顺序的,正确顺序如下:

 
 
 
  1. 先〈result-types〉,必须有〈result-type/〉项;       
  2. 再〈interceptors〉,必须有〈interceptor/〉项;       
  3. 接下来是〈default-interceptor-ref   name="completeStack"〉  
  4. default-interceptor-ref〉;       
  5. 然后是〈global-results〉,必须有〈result/〉项;       
  6. 然后〈global-exception-mappings〉,    
  7. 子项如〈exception-mapping result="errorPage"     
  8. exception="java.lang.Exception"/〉       
  9. ***才是〈action/〉    

***才是

 
 
 
  1. 〈action name="test" 〉     
  2. 〈interceptor-ref name="exception"/ 〉     
  3. 〈interceptor-ref name="basicStack"/ 〉     
  4. 〈exception-mapping exception="com.acme.  
  5. CustomException" result="custom_error"/ 〉     
  6. 〈result name="custom_error" 〉custom_error.ftlresult 〉     
  7. 〈result name="success" type="freemarker" 〉test.ftlresult 〉     
  8. action 〉     

webwork运行流程: 

默认执行execute()方法,该方法默认返回SUCCESS;

 
 
 
  1. 〈Script language="JavaScript" src="/js/pagenumber.js" 〉  
  2. 〈/Script 〉     
  3. 〈script Language="JavaScript" 〉     
  4. listNumUrl("courseInfoList.action?&pageNum=" 
  5. ,${pageNum},${allPageNum});     
  6. 〈/script 〉  

Ognl工作原理:

OgnlValueStack stack=new OgnlValueStack();  

stack.push(new User())://首先将打算赋值的对象压入栈中  

stack.setValue("name","erica");//为栈顶对象User指定的属性名name赋值  

HttpSession是一个接口,  

Properties实现了继承了HashTable(实现了Map接口),也就是说它保存的也是值-键对象,它的setProperty("name","value")实质上就是保存到HashTable里了。

默认不是ajax

 
 
 
  1. 〈action name="itemPersonalInput"   
  2. class="cn.com.s520.course.ItemPersonalInputAction"〉    
  3. 〈interceptor-ref name="fileUpload"〉    
  4. 〈param name="allowedTypes"〉    
  5. application/msword,image/gif,  
  6. image/jpeg,image/pjpeg,application/x-shockwave-flash     
  7. param〉    
  8. 〈param name="maximumSize">10485760param〉    
  9. interceptor-ref〉    
  10. 〈interceptor-ref name="basicStack"/〉    
  11. 〈result name="input" type="freemarker">  
  12. /course/ItemPersonalInput.ftlresult〉    
  13. 〈result name="error" type="freemarker">  
  14. course/ItemPersonalInput.ftlresult〉    
  15. 〈result name="success" type="redirect">  
  16. /itemPersonalList.actionresult〉    
  17. action〉  

private File images;

private String imagesContentType;  

private String imagesFileName;//得到不含路径的文件名,如test.jpg 

 
 
 
  1. 〈result name="success" type="stream" 〉    
  2. 〈param name="contentType">image/jpegparam 〉    
  3. 〈param name="inputName">imageStreamparam 〉    
  4. 〈param name="  
  5. contentDisposition">filename="logo.png"param 〉    
  6. 〈param name="bufferSize">4096param 〉    
  7. result> 

1,〈param name="contentType">application/x-msdownloadparam 〉


contentType设成 application/x-msdownload 就可以。这样浏览器会保证弹出一个下载文件的对话框。 


2,inputName 这个比较重要,这个名字是输入流的名称, 以后要steam result的实现类中为根据OGNL的表达式去查找的。 

contentDisposition 这个是下载之后,保存在用户端的文件名称。

3,另外一个参数:contentLength就是下载文件的大小,webwork的stream result似乎实现有问题,不能根据文件的大小动态进行设置,只能写死。 

这个WebWork配置参数的意义是告诉浏览下载的文件有多大,以便浏览器正确的显示进度条。如果这个功能很重要的话,可以重新写一个RESULT来实现。

 
 
 
  1. 〈result>/form.jspresult>如果不指明,默认为success     
  2. 〈action name="userReg"   
  3. class="com.opensymphony.xwork.ActionSupport" 〉    
  4. 〈result name="input">/app/userreg.ftlresult 〉    
  5. 〈/action 〉  

这里将不会出现预期的页面,因为默认为success,不会转向我们指定的input页面

 
 
 
  1. 〈result name="no-content" type="header"〉     
  2. 〈param name="status"〉204param〉     
  3. 〈param name="headers.customHeaderA"〉Aparam〉     
  4. 〈param name="headers.customHeaderB"〉Bparam〉     
  5. result〉  

chain视图:  

同一个包里,可设置type为chain,对应action的扩展名也可以不写,

 
 
 
  1. 〈result name="error" type="chain"〉     
  2. 〈param name="actionName"〉barparam〉     
  3. result〉     

不同包里

 
 
 
  1. 〈result name="errorPage" type="chain" 〉     
  2. 〈param name="namespace" 〉/param 〉     
  3. 〈param name="actionName" 〉barparam 〉     
  4. result 〉     

或者设置type为redirect,重定向过去

 
 
 
  1. 〈action name="index" class="  
  2. com.opensymphony.xwork.ActionSupport"〉     
  3. 〈result name="success" type="redirect"〉  
  4. /course/courseInfoList.actionresult〉     
  5. action〉   

 
 
 
  1. 〈default-interceptor-ref name="defaultStack"/〉   

这里只是在你没有设置拦截器时才用到,如果WebWork配置拦截器了,就不会调用这个了。

本文标题:WebWork配置笔记
链接地址:http://www.shufengxianlan.com/qtweb/news46/365646.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联