标签:text end 存在 文件 ext.get java order 登录 uname
一、动态方法调用
Login.jsp
<form action="log.action"> <font color="red">${loginError }</font> <table align="center"> <tr><td>用户名:<input type="text" name="uname"></td></tr> <tr><td>密 码:<input type="password" name="upass"></td></tr> <tr><td><input type="submit" value="登录"></td></tr> </table> </form> |
Struts.xml
<action name="log" class="com.inspur.action.LoginAction" method="login"> <result name="success">/success.jsp</result> <result name="error">/error.jsp</result> </action> |
LoginAction.java
public String login(){ if("ross".equals(this.uname) && "111".equals(this.upass)){ return SUCCESS; }else{ return ERROR; } } |
动态调用案例
Login.jsp
<form action="log!login"> <font color="red">${loginError }</font> <table align="center"> <tr><td>用户名:<input type="text" name="uname"></td></tr> <tr><td>密 码:<input type="password" name="upass"></td></tr> <tr><td><input type="submit" value="登录"></td></tr> </table> </form> |
Struts.xml
<action name="log" class="com.inspur.action.LoginAction"> <result name="success">/success.jsp</result> <result name="error">/error.jsp</result> </action> |
LoginAction.java
public String login() { // 模拟用户登录处理(登录正确) if ("ross".equals(uname) && "111".equals(upass)) { session.put("uname", uname); // 返回逻辑视图名 return SUCCESS; // 登录失败 } else { request.put("loginError", "登录名称或者密码错误"); // 返回逻辑视图名 return ERROR; } } |
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
二、通配符
反面案例
Login.jsp
<form action="login_add.action"> <font color="red">${loginError }</font> <table align="center"> <tr><td>用户名:<input type="text" name="uname"></td></tr> <tr><td>密 码:<input type="password" name="upass"></td></tr> <tr><td><input type="submit" value="登录"></td></tr> </table> </form> </body> |
Struts.xml
<package name="struts2" extends="struts-default"> <action name="login_add" class="com.inspur.action.LoginAction" method="add"> <result name="success">/login_add_success.jsp</result> </action> <action name="login_upd" class="com.inspur.action.LoginAction" method="upd"> <result name="success">/login_upd_success.jsp</result> </action> </package> |
loginAction.xml
public String add(){ //第一种方式:actioncontext类 ActionContext context = ActionContext.getContext(); Map<String, String> requestMap = (Map<String, String>) context.get("request");
requestMap.put("msg", "add success!"); return SUCCESS; } public String upd(){ //第一种方式:actioncontext类 ActionContext context = ActionContext.getContext(); Map<String, String> requestMap = (Map<String, String>) context.get("request");
requestMap.put("msg", "upd success!"); return SUCCESS; } |
Struts.xml中add和upd可以用*代替,这样每个action都只配置一次就好了,但是在系统里面很多模块的时候action依然会比较多,不利于配置。同理将action名称也用通配符进行配置。
最终Struts.xml配置样式:
<action name="*_*" class="com.inspur.action.{1}Action" method="{2}"> <result name="success">/{1}_{2}_success.jsp</result> </action> |
标签:text end 存在 文件 ext.get java order 登录 uname
原文地址:http://www.cnblogs.com/zhouyeqin/p/7172036.html