struts(方法调用)

具体的调用方式:
* 方法的动态调
* 在<action>中配置method属性
* 使用通配符

1. 方法的动态调用方式:(不推荐,会将方法名暴漏出来。但可以通过伪连接隐藏起来。)

action名称+!+方法名称+后缀

<a href="user!add.action">添加用户</a><br>

<a href="user!del.action">删除用户</a><br>

!!动态调用参数配置,默认为true,可以调用,设置为false不能通过此种方式调用。

<constant name="struts.enable.DynamicMethodInvocation" value="false"/>

!!Action中的定义所有方法格式必须和execute方法一致(参数,返回值,异常最好也一样)

2. 在<action>中配置method属性

<action name="add" class="com.mumu.struts2.UserAction" method="add">

<action name="update" class="com.mumu.struts2.UserAction" method="update">

3. Struts2的Action中包含多个方法如何调用(使用通配符)

具体配置("{1}"表示第一个*所代表的值。)

<action name="*User" class="com.mumu.struts2.UserAction" method="{1}">

<result>/{1}Success.jsp</result>

</action>

注意:页面上也要与action中保持一致,如:

<a href="loginUser.action" target="_blank">login</a>

<a href="saveUser.action" target="_blank">login</a>

在Struts2的<action>标签class、name、method和result标签上都可以使用通配符通配符的作用就是为了减少配置量,通配符需要建立在约定的基础上

多个通配符*-*(*代表变化的)

1). 配置xml文件:

<package name="one" extends="struts2" namespace="/">

<action name="*-*User" class="com.mumu.action.TestAction" method="{1}">

<result name="{2}">/{1}User.jsp</result>

<result name="input">/index.jsp</result>

</action>

</package>

单个通配符和多个通配符若后面跟的内容一样时(*User和*-*User),不能同时使用。因为可能第一个会将第二个的请求拦截住。

2). 页面调用:<a href="save-saveUser.action" target="_blank">save</a>

3). action类中的返回值:

public String save(){

str = "保存方法";

return "save";

}

时间: 2024-10-05 08:28:27

struts(方法调用)的相关文章

struts.enable.DynamicMethodInvocation = true 动态方法调用

default.properties 在Struts 2的核心jar包-struts2-core中,有一个default.properties的默认配置文件.里面配置了一些全局的信息,比如: struts.enable.DynamicMethodInvocation = true,-动态方法调用,为true时,就可以在struts.xml配置“*”的通配符,来调用action里的方法(下面介绍) struts.action.extension=action,-action 的后缀名,可以改成.t

Struts 2之动态方法调用,不会的赶紧来

学习Struts2框架以来为了减少Action 的数量,我们可以使用动态方法进行处理. 动态方法调用(Dynamic Method Invocation,DMI)是指表单元素的Action并不是直接等于某个Action的名称,而是通过 在Action的名称中使用感叹号(!)来标识要调用的方法名称,格式为actionName! methodName.action. 但是由于动态方法的调用可能会带来安全隐患(通过URL可以执行Action中的任意方法),所以在确定使用动态方法调用时, 应该确保Act

struts之动态方法调用改变表单action属性

一.动态方法调用(DMI:Dynamic Method Invocation) ⒈struts2中同样提供了这个包含多个逻辑业处理的Action,这样就可以在一个Action中进行多个业务逻辑处理.例如:当用户通过不同的提交按钮来提交同一个表单的时候,系统通过不同的方法来处理用户不同的请求,这时候就需要让同一个Action中包含有多个控制处理的逻辑. ⒉动态方法调用有: ①.改变struts.xml中的action中的method属性. ②.改变form表单中的action属性来改变不同提交的请

JavaWeb_(SSH)struts.xml核心配置、动态方法调用、结果集的处理

前导博文 JavaWeb_(SSH)使用Struts框架实现用户的登陆 传送门 JavaWeb_(SSH)Struts创建Action的三种方式 传送门 核心配置 动态方法调用 结果集处理 一.核心配置 struts.xml <!-- name:配置包名 namespace:给action的访问路径定义一个命名空间 --> <package name="MyPackage" namespace="/user" extends="strut

Struts2学习第七课 动态方法调用

动态方法调用:通过url动态调用Action中的方法. action声明: <package name="struts-app2" namespace="/" extends="struts-default"> <action name="Product" class="org.simpleit.app.Product"> </package> URI: --/strut

动态方法调用

1.先建立一个项目 2.在此项目中需要建立两个jsp 1)在第一个jsp中写入一句话 <body> User Add Success! </body> 2)在第二个jsp中写入链接 <body> Action执行的时候并不一定要执行execute方法<br /> 可以在配置文件中配置Action的时候用method=来指定执行哪个方法 也可以在url地址中动态指定(动态方法调用DMI)(推荐)<br /> <a href="<

struts2中通配符和DMI(动态方法调用)

在struts2中不建议使用Dynamic Method Invocation,具体原因见官方文档: http://struts.apache.org/docs/action-configuration.html#ActionConfiguration-WildcardMethod; 刚刚接触这块,所以两种方法各自实现一下: 1)动态方法调用: struts.xml文件: <package name="default" namespace="/yin" ext

Struts2动态方法调用(DMI)

在Struts2中动态方法调用有三种方式,动态方法调用就是为了解决一个Action对应多个请求的处理,以免Action太多 第一种方式:指定method属性这种方式我们前面已经用到过,类似下面的配置就可以实现 <action name="chainAction" class="chapter2.action.Chapter2Action" method="chainAction"> <result name="chai

struts2.5动态方法调用和默认Action

在动态方法调用中,使用通配符方法出现问题,参考了http://www.cnblogs.com/jasonlixuetao/p/5933671.html 这篇博客,问题解决了. 这个是helloworld.xml: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Co