这篇文章将为大家详细讲解有关WebWork如何配置,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
在标签方面,WebWork配置这几个标签是有严格顺序的,正确顺序如下:
先〈result-types〉,必须有〈result-type/〉项; 再〈interceptors〉,必须有〈interceptor/〉项; 接下来是〈default-interceptor-ref name="completeStack"〉 default-interceptor-ref〉; 然后是〈global-results〉,必须有〈result/〉项; 然后〈global-exception-mappings〉, 子项如〈exception-mapping result="errorPage" exception="java.lang.Exception"/〉 ***才是〈action/〉
***才是
〈action name="test" 〉 〈interceptor-ref name="exception"/ 〉 〈interceptor-ref name="basicStack"/ 〉 〈exception-mapping exception="com.acme. CustomException" result="custom_error"/ 〉 〈result name="custom_error" 〉custom_error.ftlresult 〉 〈result name="success" type="freemarker" 〉test.ftlresult 〉 action 〉
webwork运行流程:
默认执行execute()方法,该方法默认返回SUCCESS;
〈Script language="JavaScript" src="/js/pagenumber.js" 〉 〈/Script 〉 〈script Language="JavaScript" 〉 listNumUrl("courseInfoList.action?&pageNum=" ,${pageNum},${allPageNum}); 〈/script 〉
Ognl工作原理:
OgnlValueStack stack=new OgnlValueStack();
stack.push(new User())://首先将打算赋值的对象压入栈中
stack.setValue("name","erica");//为栈顶对象User指定的属性名name赋值
HttpSession是一个接口,
Properties实现了继承了HashTable(实现了Map接口),也就是说它保存的也是值-键对象,它的setProperty("name","value")实质上就是保存到HashTable里了。
〈action name="itemPersonalInput" class="cn.com.s520.course.ItemPersonalInputAction"〉 〈interceptor-ref name="fileUpload"〉 〈param name="allowedTypes"〉 application/msword,image/gif, image/jpeg,image/pjpeg,application/x-shockwave-flash param〉 〈param name="maximumSize">10485760param〉 interceptor-ref〉 〈interceptor-ref name="basicStack"/〉 〈result name="input" type="freemarker"> /course/ItemPersonalInput.ftlresult〉 〈result name="error" type="freemarker"> course/ItemPersonalInput.ftlresult〉 〈result name="success" type="redirect"> /itemPersonalList.actionresult〉 action〉
private File images;
private String imagesContentType;
private String imagesFileName;//得到不含路径的文件名,如test.jpg
〈result name="success" type="stream" 〉 〈param name="contentType">image/jpegparam 〉 〈param name="inputName">imageStreamparam 〉 〈param name=" contentDisposition">filename="logo.png"param 〉 〈param name="bufferSize">4096param 〉 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来实现。
〈result>/form.jspresult>如果不指明,默认为success 〈action name="userReg" class="com.opensymphony.xwork.ActionSupport" 〉 〈result name="input">/app/userreg.ftlresult 〉 〈/action 〉
这里将不会出现预期的页面,因为默认为success,不会转向我们指定的input页面
〈result name="no-content" type="header"〉 〈param name="status"〉204param〉 〈param name="headers.customHeaderA"〉Aparam〉 〈param name="headers.customHeaderB"〉Bparam〉 result〉
chain视图:
同一个包里,可设置type为chain,对应action的扩展名也可以不写,
〈result name="error" type="chain"〉 〈param name="actionName"〉barparam〉 result〉
不同包里
〈result name="errorPage" type="chain" 〉 〈param name="namespace" 〉/param 〉 〈param name="actionName" 〉barparam 〉 result 〉
或者设置type为redirect,重定向过去
〈action name="index" class=" com.opensymphony.xwork.ActionSupport"〉 〈result name="success" type="redirect"〉 /course/courseInfoList.actionresult〉 action〉
〈default-interceptor-ref name="defaultStack"/〉
这里只是在你没有设置拦截器时才用到,如果WebWork配置拦截器了,就不会调用这个了。
关于“WebWork如何配置”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。