现在的位置: 首页 > 综合 > 正文

struts2 总结

2013年03月01日 ⁄ 综合 ⁄ 共 4458字 ⁄ 字号 评论关闭
  1. 1.1.自从Struts2.13、以后之前的FilterDispatcher标注为过时    
  2. 2.<filter-class>    
  3. 3.    org.apache.struts.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter    
  4. 4.</filter-class>    
  5. 5.    
  6. 6.2.action中默认的method为execute()    
  7. 7.   默认class为ActionSupport    
  8. 8.   默认name 为success;    
  9. 9.    
  10. 10.3.转发类型   传中文参数URLEncoder.encode("","UTF-8");    
  11. 11.forward     
  12. 12.    
  13. 13.redirect 浏览器跳转    
  14. 14.<result type="redirect">/index.jsp</param>    
  15. 15.    
  16. 16.redirectAction(跳转到另一action)     
  17. 17.<result type="redirectAction">    
  18. 18.<param name="actionName">xxx</param>    
  19. 19.<param name="namespace">/xxx/xxx</param>    
  20. 20.</result>    
  21. 21.    
  22. 22.plainText(返回jsp页面的源代码)  中文问题    
  23. 23.<result type="plainText">    
  24. 24.<param name="location">index.jsp</param>    
  25. 25.<param name="charSet">UTF-8</param>    
  26. 26.</result>    
  27. 27.    
  28. 28.4.共用    
  29. 29.<global-results>    
  30. 30.   <result name="success">index.jsp</result>    
  31. 31.</global-results>    
  32. 32.    
  33. 33.5.给action中的参数赋值    
  34. 34.<action ---->    
  35. 35.    <param name="param_name">xxx</param>    
  36. 36.    <result>index.jsp</result>    
  37. 37.</action>    
  38. 38.    
  39. 39.6.常量标签    
  40. 40.<指定截取的后缀    
  41. 41.<constant name="struts.action.extension" value="do,action"/>    
  42. 42.    
  43. 43.指定默认编码集 作用于HttpServletRequest的setCharacterEncoding的方法    
  44. 44.<constant name="struts.i18n.encoding" value="UTF-8"/>    
  45. 45.    
  46. 46.设置浏览器是否缓存静态页面 默认值为true    
  47. 47.<constant name="struts.serve.static.browserCache" value="true"/>    
  48. 48.    
  49. 49.当struts的配置文件被修改后,系统是否自动重新加载文件 默认值为false    
  50. 50.<constant name="struts.configuration.xml.reload" value="true"/>    
  51. 51.    
  52. 52.打印详细错误信息  开发阶段可以打开    
  53. 53.<constant name="struts.devMode" value="true"/>    
  54. 54.    
  55. 55.与spring集成时,指定由spring负责的action对象创建    
  56. 56.<constant name="struts.objectFactory" value="spring"/>    
  57. 57.    
  58. 58.上传文件大小限制  默认大小为10701096    
  59. 59.<constant name="struts.multipartmaxSize" value="10701096"/>    
  60. 60.    
  61. 61.struts2加载常量的搜索顺序    
  62. 62.struts-default.xml->struts-plugin.xml->struts.xml->struts.properties->web.xml    
  63. 63.如果在多个配置中定义了同一常量则后一文件中的常量将覆盖前面的常量    
  64. 64.    
  65. 65.主题    
  66. 66.<constant name="struts.ui.theme" value="simple"/>    
  67. 67.7.指定调用方法  默认是执行execute    
  68. 68.动态方法调用:    
  69. 69.<constant name="struts.enable.DynamicMethodInvocation" value="true"/>    
  70. 70.在访问路径后加!methodname   如/example/list!add.action    
  71. 71.    
  72. 72.也可以用通配符来确认    
  73. 73.<action name="list_*_*" class="com.ss.action.{1}Action" method="{1}">    
  74. 74.    <result name="success">/{2}.jsp</result>    
  75. 75.</action>    
  76. 76.    
  77. 77.8.2.1.6版本 接受中文请求参数出现乱版    
  78. 78.新建一个过滤器filter放到struts2的filter之前,然后在doFilter()方法中添加代码    
  79. 79.public void doFilter(){    
  80. 80.    HttpServletRequest req=(HttpServletRequest)request;    
  81. 81.    req.setCharacterEncoding("UTF-8");    
  82. 82.    filterchain.doFilter(request,response);    
  83. 83.}    
  84. 84.    
  85. 85.9.定义类型转换器    
  86. 86.一、局部    
  87. 87.定义一个类并继承DefaultTypeConverter从写    
  88. 88.convertValue(Map<String,Object> context,Object value,Class toType){    
  89. 89.  SimpleDateFormat date=new SimpleDateFormat("yyyymmdd");    
  90. 90.try{    
  91. 91.   if(toType==Date.class){    
  92. 92.    String[] params=(String[])value;    
  93. 93.    return dateFormat.parse(params[0]);    
  94. 94.     }else if(toType==String.class){    
  95. 95.    Date date=(Date)value;    
  96. 96.    return dateFormat.format(date);    
  97. 97.     }    
  98. 98.   }catch(ParseException e){    
  99. 99.    return null;    
  100. 100.   }    
  101. 101.}    
  102. 102.注册:在Action类包下放置<ActionClassName>-conversion.properties文件    
  103. 103.   属性名=包名.定义的类    
  104. 104.二、全局    
  105. 105.在src下(WEB-INF/class/)下   xwork-conversion.properties    
  106. 106.java.util.Date=包名.类名    
  107. 107.    
  108. 108.10.向request、session、application中添加属性    
  109. 109.ActionContext act=ActionContext.getCOntext();    
  110. 110.act.getApplication.put("app","应用范围");    
  111. 111.act.getSession.put("ses","session应用范围");    
  112. 112.act.put("req","request范围")    
  113. 113.    
  114. 114.获取原生的请求对象    
  115. 115.HttpServletRequest request=ServletActionContext.getRequest();    
  116. 116.ServletContext servlet=ServletActionContext.getServletContext();    
  117. 117.servletContext.getRealPath(“”);得到具体文件的绝对路径    
  118. 118.request.getSession().setArrtibute("session","会话范围");    
  119. 119.servletContext.setAttribut("app","应用范围");    
  120. 120.request.setAttribute("req","request范围");    
  121. 121.页面访问    
  122. 122.${applicationScope.app}    
  123. 123.${sessionScope.ses}    
  124. 124.${requestScope.req}    
  125. 125.    
  126. 126.11.struts2上传文件    
  127. 127.第一步:放jar包 commond-fileupload-1.21.art和commons-io-1.3.2.jar    
  128. 128.第二步:把form表单的enctype设置为:multipart/form-data  如    
  129. 129.<form enctype="multipart/form-data"     
  130. 130.    
  131. 131.action="${pageContext.request.contextPath/list.action}" method="">    
  132. 132.  <input type="file" name="uploadImage">    
  133. 133.  <input type="submit" value="upload"/>    

抱歉!评论已关闭.