struts2为Action配置method属性
来源:互联网 发布:残疾人就业歧视数据 编辑:程序博客网 时间:2024/05/21 08:38
将Action类中的每一个处理方法都定义成一个逻辑Action方法。
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="my" extends="struts-default" namespace="/manage">
<action name="userLogin" class="org.qiujy.web.struts2.action.LoginAction" method="login">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
<action name="userRegist" class="org.qiujy.web.struts2.action.LoginAction" method="regist">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
如上,把LoginAction中的login和regist方法都配置成逻辑Action。要调用login方法,则相应的把index.jsp中表单元素的action设置为"manage/userLogin.action";要调用regist方法,把regist.jsp中表单元素的action设置为"manage/userRegist.action"。
3.3. 使用通配符映射(wildcard mappings)方式:
在struts.xml文件中配置<action…>元素时,它的name、class、method属性都可支持通配符,这种通配符的方式是另一种形式的动态方法调用。
当我们使用通配符定义Action的name属性时,相当于用一个元素action定义了多个逻辑Action:
<action name="user_*"
class="org.qiujy.web.struts2.action.UserAction" method="{1}">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
如上,<action name=”user_*”>定义一系列请求URL是user_*.action模式的逻辑Action。同时method属性值为一个表达式{1},表示它的值是name属性值中第一个*的值。例如:用户请求URL为user_login.action时,将调用到UserAction类的login方法;用户请求URL为user_regist.action时,将调用到UserAction类的regist方法。
4. 处理结果
Struts2的Action处理完用户请求后,将返回一个普通字符串,整个普通字符串就是一个逻辑视图名。Struts2通过配置逻辑视图名和物理视图资源之间的映射关系,一旦系统收到Action返回的某个逻辑视图名,系统就会把对应的物理视图资源呈现给浏览者。
4.1. 配置处理结果:
Struts2的Action处理用户请求结束后,返回一个普通字符串-逻辑视图名,必须在struts.xml文件中完成逻辑视图和物理视图资源的映射,才可让系统转到实际的视图资源。
Struts2通过在struts.xml文件中使用<result …/>元素来配置结果。Struts2提供了两种结果。
l 局部结果:将<result …/>作为<action …>元素的子元素配置。
l 全局结果:将<result …/>作为<global-results …>元素的子元素配置。
在package元素中配置<global-results>子元素:
<global-results>
<result name="error">/Error.jsp</result>
<result name="invalid.token">/Error.jsp</result>
<result name="login" type="redirect-action">Logon!input</result>
</global-results>
Ajax制作二级联动下拉列表框
1.index.jsp
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <html> 3 <head> 4 <script type="text/javascript" language="javaScript"> 5 var xmlHttp = false; //全局变量,用于记录XMLHttpRequest对象 6 function createXMLHttpRequest() { 7 if(window.ActiveXObject) { //Internet Explorer时,创建XMLHttpRequest对象的方法 8 try { 9 xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");10 } catch(e) {11 try {12 xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");13 //旧版本的Internet Explorer,创建XMLHttpRequest对象14 } catch(e) {15 window.alert("创建XMLHttpRequest对象错误"+e);16 } 17 }18 } else if(window.XMLHttpRequest) { //mozilla时,创建XMLHttpRequest对象的方法19 xmlHttp = new XMLHttpRequest();20 } 21 if(!(xmlHttp)) { //未成功创建XMLHttpRequest对象22 window.alert("创建XMLHttpRequest对象异常!");23 } 24 }25 26 //下拉列表项改变时的操作27 function proChange(objVal) {28 createXMLHttpRequest(); //创建XMLHttpRequest对象29 document.getElementById("city").length = 1; //根据ID获取指定元素,并赋值30 xmlHttp.onreadystatechange = cityList; //指定onreadystatechange处理函数31 var url = "/ComboTest/servlet/CityServlet?province=" + objVal; //请求的URL地址32 xmlHttp.open("GET",url,true);33 xmlHttp.send(null);34 }35 36 function cityList() { //onreadystatechange的处理函数37 if(xmlHttp.readyState==4) {38 if(xmlHttp.status==200) {39 parseXML(xmlHttp.responseXML); //解析服务器返回的XML数据40 }41 }42 }43 44 //解析xml信息,以添加地市45 function parseXML(xmlDoc) {46 var len = xmlDoc.getElementsByTagName("city");47 //获取XML数据中所有的“city”元素对象集合48 var _citySel = document.getElementById("city"); //根据ID获取页面中的select元素49 for(var i=0;i<len.length;i++) { //遍历XML数据并给select元素添加选项50 var opt = document.createElement("OPTION"); //创建option对象51 opt.text = xmlDoc.getElementsByTagName("city")[i].firstChild.data;52 //指定新创建元素的text属性值53 opt.value = xmlDoc.getElementsByTagName("city")[i].firstChild.data;54 //指定新创建元素的value属性值55 _citySel.add(opt); //为select元素添加option56 }57 }58 </script>59 <title>动态加载组合框</title>60 </head>61 <body>62 <table align="center" border=1 width="320">63 <tr>64 <td>省份:</td>65 <td>66 <select id="province" onchange="proChange(this.value);" style="width:85">67 <option value="gd">广东</option>68 <option value="gx">广西</option>69 <option value="hn">湖南</option>70 <option value="hb">湖北</option>71 <option value="ah">安徽</option>72 </select>73 </td>74 </tr>75 <tr>76 <td>地市:</td>77 <td>78 <select id="city" style="width:85">79 <option value="">--请选择--</option>80 </select>81 </td>82 </tr>83 </table>84 </body>85 </html>
2.CityServlet.java
1 public class CityServlet extends HttpServlet { 2 private static final String CONTENT_TYPE = "text/xml; charset=UTF-8"; 3 //设置返回响应的ContentType 4 /** 5 *当前Servlet对象构造方法 6 */ 7 public CityServlet() { 8 super(); 9 }10 /**11 * 当前Servlet销毁时的操作。<br>12 */13 public void destroy() {14 super.destroy();15 }16 /**17 * 当前Servlet的doGet方法。<br>18 *19 * 当客户端表单的“method”类型为“get”时,调用此方法20 * 21 * @param request客户端请求对象22 * @param response 服务器响应对象23 * @throws ServletException 发生ServeltException时抛出24 * @throws IOException 发生IOException时抛出25 */26 public void doGet(HttpServletRequest request, HttpServletResponse response)27 throws ServletException, IOException {28 response.setContentType(CONTENT_TYPE); //设置服务器响应类型29 String province =request.getParameter("province");30 StringBuffer city = new StringBuffer("<citys>"); //记录返回XML串的对象31 List list = cityInit(); //获取城市列表32 if("gx".equals(province)) {33 for(int i=0;i<list.size();i++) {34 city.append("<city>"+list.get(i)+"</city>");35 } 36 }37 city.append("</citys>");38 PrintWriter out = response.getWriter();39 out.print(city.toString());40 out.flush(); //输出流刷新41 out.close(); //关闭输出流42 }43 44 /*45 * 初始化城市46 */47 public List<String> cityInit() {48 List<String> cityList = new ArrayList<String>();49 //添加城市列表50 cityList.add("南宁");51 cityList.add("桂林");52 cityList.add("北海");53 cityList.add("河池");54 cityList.add("梧州");55 cityList.add("玉林");56 return cityList;57 }58 59 /**60 *当前Servelt的初始化方法. <br>61 *62 * @throws ServletException发生ServletExceptio时抛出63 */64 public void init() throws ServletException {65 }66 }
3.web.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.5" 3 xmlns="http://java.sun.com/xml/ns/javaee" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 6 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 7 <servlet> 8 <description>This is the description of my J2EE component</description> 9 <display-name>This is the display name of my J2EE component</display-name>10 <servlet-name>CityServlet</servlet-name>11 <servlet-class>wen.CityServlet</servlet-class>12 </servlet>13 <servlet-mapping>14 <servlet-name>CityServlet</servlet-name>15 <url-pattern>/servlet/CityServlet</url-pattern>16 </servlet-mapping>17 <welcome-file-list>18 <welcome-file>index.jsp</welcome-file>19 </welcome-file-list>20 </web-app>
- struts2为Action配置method属性
- struts2为Action配置method属性
- struts2为Action配置method属性
- struts2为Action配置method属性(转载)
- STRUTS2为ACTION配置METHOD属性
- STRUTS2为ACTION配置METHOD属性
- 为Action配置method属性
- Struts2(9):为<action>指定method属性
- struts2 配置action的method属性
- struts2.Action中的method属性配置
- struts2——为Action配置Method属性,实现同一文件,多个Action
- struts2--为Action配置Method属性,实现同一文件,多个Action
- Struts2动态方法和method属性,配置默认Action
- struts2配置中<action >的method{数字}属性
- struts2中struts.xml中的action标签的method属性配置为"{1}"的时候是什么意味
- Action配置(动态方法调用、为Action元素指定method属性、通配符映射)
- Struts2-Action接受参数方式、method属性使用及通配符的配置
- 【Struts2】为Action的属性注入值
- Ajax制作Web进度条
- 在IE6下form表单提交无效
- [Cocoa]深入浅出 Cocoa 之多线程 NSThread
- ActiveSync编程总结(一)
- 多物理机器中的TAP虚拟网卡在linux briadge中通过TUP远程通信 ( by quqi99 )
- struts2为Action配置method属性
- Flex解析URL用于RO的EndPoint
- ActiveSync编程总结(二)
- [代码行数统计工具]SourceCounter.zip
- linux_linux指令_解压.zip和.rar文件
- MSDN帮助集成指南
- 第十六周C++【任务四】要求编写C++程序,读WolfSheep.nls,去除其中所有的注释,并保存到文件WS_nocomment.nls 中
- Bean作用域的配置以及 Spring各种注入方式实例 list set map props
- ActiveSync编程总结(三)