zoukankan      html  css  js  c++  java
  • Struts(八):动态方法调用

    动态方法调用:通过url动态调用action中的方法。

    默认情况下,Struts的动态方法调用处于禁用状态。

    测试定义一个action类:

     1 package com.dx.actions;
     2 
     3 public class DynamicAction {
     4     public String index(){
     5         System.out.println("index method");
     6         return "success";
     7     }
     8     
     9     public String save1(){
    10         System.out.println("save1 method11");
    11         return "success";
    12     }
    13 }

    修改配置struts.xml

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE struts PUBLIC
     3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
     4     "http://struts.apache.org/dtds/struts-2.3.dtd">
     5 
     6 <struts>
     7 
     8     <constant name="struts.enable.DynamicMethodInvocation" value="true" />
     9     <constant name="struts.devMode" value="false" />
    10 
    11     <package name="default" namespace="/" extends="struts-default">      
    12         <action name="dynamicTest" class="com.dx.actions.DynamicAction" method="index">
    13             <result name="success">/WEB-INF/test.jsp</result>
    14         </action>
    18     </package>
    19 
    20 
    21 </struts>

    添加测试页面index.jsp

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>
    10 <a href="dynamicTest.action">test</a><br/>
    11 <a href="dynamicTest!save1.action">test2</a>
    12 </body>
    13 </html>

    点击链接后,发现两个方法都可以被调用,尽管我们没有定义save方法为一个action在struts.xml中。

    注意:

    及时定义了save的action节点

    1 <action name="saveTest" class="com.dx.actions.DynamicAction" method="save1">
    2             <result name="success">/WEB-INF/tes25t.jsp</result>
    3         </action>

    ,通过

    <a href="dynamicTest!save1.action">test2</a>

    调用,也不会跳转到指定的页面。而是跳转到了test.jsp页面,比较奇怪。

  • 相关阅读:
    day01
    用表单验证数据(1)
    用表单验证数据
    表单
    ORM作业
    mysql完全卸载大全
    mycat特点及用途
    ajax 跨域请求解决方案
    myeclipse使用SVN团队开发
    配置mybatis错误总结
  • 原文地址:https://www.cnblogs.com/yy3b2007com/p/5686172.html
Copyright © 2011-2022 走看看