struts2笔记

 struts.xml配置文件

  
  
  
  
  1. <constant name="struts.devMode" value="true"/><!-- 开发模式 -->
  2. <constant name="struts.action.extension" value="action,,do,webwork"/><!-- 配置後�Y名 -->
  3.  
  4. <package name="struts2" namespace="/" extends="struts-default"> 
  5.      
  6.         <action name="rand" class="com.umgsai.txyl.util.RandomAction" method="execute"> 
  7.             <result type="stream"> 
  8.                 <param name="contentType">image/jpeg</param> 
  9.                 <param name="inputName">inputStream</param> 
  10.             </result> 
  11.         </action> 
  12.         <action name="check" class="com.umgsai.txyl.util.CheckAction"> 
  13.             <result name="success">/index.jsp</result> 
  14.             <result name="input">/login.jsp</result> 
  15.         </action> 
  16. </package> 

 

--------------------------------------------------------------------------------------

动态方法调用

第一种方法

  
  
  
  
  1. <form action="simple" method="post"> 
  2.     <input type="hidden" name="method:add"/><!-- 指定要调用的方法,相当于*/simple?method:add --> 
  3.         username<input name="username"><br> 
  4.         password<input name="assword" type="password"><br/> 
  5.     <input type="submit" value="提交"/> 
  6. </form> 

struts2.xml

  
  
  
  
  1. <action name="simple" class="com.umgsai.test.SimpleAction" > 
  2.     <result name="add_input">/add_input.jsp</result> 
  3.     <result name="add_success">/add_success.jsp</result> 
  4.     <result name="update_input">/update_input.jsp</result> 
  5.     <result name="update_success">/update_success.jsp</result> 
  6. </action> 

SimpleAction.java

  
  
  
  
  1. public class SimpleAction { 
  2.  
  3.     public String addInput(){ 
  4.         System.out.println("�M入添加"); 
  5.         return "add_input"
  6.     } 
  7.     public String add(){ 
  8.         System.out.println("执行添加操作"); 
  9.         return "add_success"
  10.     } 
  11.     public String updateInput(){ 
  12.         System.out.println("进入更新页面"); 
  13.         return "update_input"
  14.     } 
  15.     public String update(){ 
  16.         System.out.println("执行更新方法"); 
  17.         return "update_success"
  18.     } 
  19.     public String delete(){ 
  20.         System.out.println("执行删除方法"); 
  21.         return "delete_success"
  22.     } 

执行完毕后跳转到add_success.jsp

第二种方法

http://localhost:8080/structstest/simple!add.action

执行完毕后跳转到add_success.jsp

第三种方法

修改第一种方法中的

  
  
  
  
  1. <action name="simple" class="com.umgsai.test.SimpleAction" >  

  
  
  
  
  1. <action name="simple_*_*" class="com.umgsai.test.SimpleAction" method="{1}_{2}">  

 

 

 

Struts2 OGNL表达对各种方法的调用

ActionContext中的内容加#

静态方法调用

  
  
  
  
  1. 在struts.xml中加 <constant name="struts.ognl.allowStaticMethodAccess" value="true"
  2. 1.<s:property value="@cn.com.xalead.tools.Utils@toUpperCase('Hello World!')"/> 
  3. 2.<s:property value="@cn.com.xalead.tools.Utils@toUpperCase(username)"/> 
  4. 3.<s:property value="@cn.com.xalead.tools.Utils@toUpperCase(user.username)"/> 
  5. 4.<s:property value="@cn.com.xalead.tools.Utils@toUpperCase(#user.sex)"/> 

 

 

动态方法调用

  
  
  
  
  1. <s:property value="new cn.com.xalead.tools.Utils().substring('Hello World!',2,5)"/> 

 

 

方法可以嵌套调用

 

调用Action中的方法

  
  
  
  
  1. 2.<s:property value="getUtils().substring('Hello World!',2,5)"/> 
  2. 3.<s:property value="utils.substring('Hello World!',2,5)"/> 
  3. 4.<s:property value="out(#user.username)"
  4. 5.<s:property value="getUsername()"/> 

 

 

配置文件中课传递动态参数

<result name="static">/static.jsp?id=#{user..id}</result>

<result name="static">/static.jsp?id=#{getUser()..id}</result>

<result name="static">/static.jsp?id=#{#user..id}</result>  //user存在ActionContext

<result name="login">%{#loginJsp}</result>  要转向的路径存在ActioContext中的loginJsp

 

 

Eclipse窗口-首选项-Java-编辑器-内容辅助-java自动激活触发器.abcd.....

 

动态include页面

<li>

<s:set var="incPage" value="'/a.html'"/>

<s:include value="%{#incPage}"></include>

</li>

 

文本框只能输入数字

  
  
  
  
  1. <input type="text" name="chapter_id" id="chapter_id" onkeyup="value=value.replace(/[^\d]/g,'') "     
  2. onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" class=""value=""/> 

 

两种action的写法

  
  
  
  
  1. <a href="user_logout.action?method:logout">退出登录</a>  
  2.   
  3. <input type="button" class="button" value="退出登录"    onClick="javascript:window.location.href='user_logout.action?method:logout'"> 

 javascript函数传参

  
  
  
  
  1. <a href="#" onclick=" article_modify('1c18ac47-57ce-491b-9703-d1114b6d988a'); return false;">修改</a><!--传字符串加单引号--> 
  2. <a href="#" onclick=" article_modify(123456); return false;">修改</a><!--传数字不加单引号--> 

 

你可能感兴趣的:(strust2)