zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    bzoj3653: 谈笑风生
    bzoj1858: [Scoi2010]序列操作
    bzoj1857: [Scoi2010]传送带
    bzoj1856: [Scoi2010]字符串
    bzoj1855: [Scoi2010]股票交易
    bzoj1854: [Scoi2010]游戏
    bzoj1853: [Scoi2010]幸运数字
    斜堆,非旋转treap,替罪羊树
    NOI2003 文本编辑器
    A_star poj2449 k短路
  • 原文地址:https://www.cnblogs.com/umgsai/p/3908131.html
Copyright © 2011-2022 走看看