struts2笔记

 struts.xml配置文件

<constant name="struts.devMode" value="true"/><!-- 开发模式 -->
<constant name="struts.action.extension" value="action,,do,webwork"/><!-- 配置後綴名 -->
 
<package name="struts2" namespace="/" extends="struts-default"> 
     
        <action name="rand" class="com.umgsai.txyl.util.RandomAction" method="execute"> 
            <result type="stream"> 
                <param name="contentType">image/jpeg</param> 
                <param name="inputName">inputStream</param> 
            </result> 
        </action> 
        <action name="check" class="com.umgsai.txyl.util.CheckAction"> 
            <result name="success">/index.jsp</result> 
            <result name="input">/login.jsp</result> 
        </action> 
</package> 

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

动态方法调用

第一种方法

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

struts2.xml

<action name="simple" class="com.umgsai.test.SimpleAction" > 
    <result name="add_input">/add_input.jsp</result> 
    <result name="add_success">/add_success.jsp</result> 
    <result name="update_input">/update_input.jsp</result> 
    <result name="update_success">/update_success.jsp</result> 
</action> 

SimpleAction.java

public class SimpleAction { 
 
    public String addInput(){ 
        System.out.println("進入添加"); 
        return "add_input"; 
    } 
    public String add(){ 
        System.out.println("执行添加操作"); 
        return "add_success"; 
    } 
    public String updateInput(){ 
        System.out.println("进入更新页面"); 
        return "update_input"; 
    } 
    public String update(){ 
        System.out.println("执行更新方法"); 
        return "update_success"; 
    } 
    public String delete(){ 
        System.out.println("执行删除方法"); 
        return "delete_success"; 
    } 
} 

执行完毕后跳转到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中的内容加#

静态方法调用

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

动态方法调用

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

方法可以嵌套调用

调用Action中的方法

<s:property value="getUtils().substring('Hello World!',2,5)"/> 
<s:property value="utils.substring('Hello World!',2,5)"/> 
<s:property value="out(#user.username)"> 
<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>

文本框只能输入数字

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

两种action的写法

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

 javascript函数传参

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

本文出自 “阿凡达” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/1117618

posted @ 2014-08-10 10:07  商商-77  阅读(107)  评论(0编辑  收藏  举报