`

DMI(Dynamic Method Invocation)动态方法调用

 
阅读更多
<script>
	function regist()
	{
		targetForm = document.forms[0];
		targetForm.action = "login!regist";//会替换表单定义的ACTION
	}
</script>

<form action="login" method="post">

<td><input type="submit" value="登录"/></td>
<td><input type="submit" value="注册" onClick="regist();"/></

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ActionContext;

public class LoginRegistAction extends ActionSupport
{
	//封装用户请求参数的两个属性
	private String username;
	private String password;
	//封装处理结果的tip属性
	private String tip;
	//username属性对应的setter和getter方法
	public String getUsername()
	{
		return username;
	}
	public void setUsername(String username)
	{
		this.username = username;
	}
	//password属性对应的getter和setter方法
	public String getPassword()
	{
		return password;
	}
	public void setPassword(String password)
	{
		this.password = password;
	}
	//tip属性对应的setter和getter方法
	public String getTip()
	{
		return tip;
	}
	public void setTip(String tip)
	{
		this.tip = tip;
	}
	//Action包含的注册控制逻辑
	public String regist() throws Exception
	{
		ActionContext.getContext().getSession().put("user" , getUsername());
		setTip("恭喜您," + getUsername() + ",您已经注册成功!");
		return SUCCESS;
	}
	//Action默认包含的控制逻辑
	public String execute() throws Exception
	{
		if (getUsername().equals("scott")
			&& getPassword().equals("tiger") )
		{
			ActionContext.getContext().getSession().put("user" , getUsername());
			setTip("欢迎," + getUsername() + ",您已经登录成功!");
			return SUCCESS;
		}
		else
		{
			return ERROR;
		}
	}
}
分享到:
评论

相关推荐

    struts2 动态方法调用(DMI)

    Struts2 动态方法调用(DMI,Dynamic Method Invocation)是Struts2框架中一个特色功能,允许开发者通过URL直接调用Action类中的方法,而无需预先在配置文件中显式声明这些方法。这种机制增加了开发的灵活性,但也...

    Struts2 动态方法调用(十三)

    在Struts2中,动态方法调用(Dynamic Method Invocation,DMI)是一种特性,允许我们通过URL直接调用Action类的方法,而无需在配置文件中显式指定。这在某些情况下提供了更大的灵活性。 在Struts2的动态方法调用中...

    Struts2动态方法调用

    Struts2作为一款流行的Java Web框架,其动态方法调用(Dynamic Method Invocation,DMI)功能为开发者提供了极大的灵活性。在传统的MVC模式中,控制器(Controller)通常通过硬编码的方式处理请求,而动态方法调用则...

    Struts2中直接和间接访问ServletAPI以及动态方法调用之感叹号

    Struts2的一个强大特性是其支持动态方法调用(Dynamic Method Invocation,DMI),这是通过URL中的"!"符号实现的。当URL中包含"!"时,Struts2会尝试解析该字符串,寻找Action类中与之匹配的方法。这种方式允许我们...

    struts2实验一:动态方法调用+请求参数的获取+简单的表单数据验证

    **动态方法调用(Dynamic Method Invocation,DMI)** 在Struts2中,动态方法调用是其一大特性,允许开发者通过URL直接调用Action类中的方法。默认情况下,Struts2会尝试将Action类的公共方法与请求路径关联,如果...

    struts2的学习笔记+测试源代码

    在Struts2中,动态方法调用(Dynamic Method Invocation,DMI)是一种特性,允许开发者通过URL直接调用Action类的方法,而不仅仅是Action类本身。这个特性在某些场景下能够提高代码的灵活性和可维护性。 动态方法...

    Struts2 处理多个请求

    要启用动态方法调用,需要在Struts配置文件中设置`struts.enable.DynamicMethodInvocation`常量为`true`,默认情况下它是启用的。 **示例:** 在登录验证的Action类中,可以添加一个注册用户的`register`方法...

    Struts2登陆+输入验证+动态调用实例

    Struts2的动态方法调用(Dynamic Method Invocation,DMI)允许我们根据用户输入来决定执行哪个Action方法。在没有明确的方法名时,Struts2会尝试匹配Action类中的方法。这种方式增加了代码的灵活性,但同时也可能...

    Struts2学习笔记(3)-DMI动态调用方式

    Struts2是一个流行的Java web框架,它提供了许多强大的特性,其中一种是动态方法调用(Dynamic Method Invocation,简称DMI)。DMI允许我们在不修改配置文件的情况下,通过URL动态地调用Action类的不同方法,增强了...

    struts+habernate+spring

    1. **开启DMI:** 需要在struts.xml配置文件中设置`struts.enable.DynamicMethodInvocation`为`true`。 ```xml &lt;constant name="struts.enable.DynamicMethodInvocation" value="true"/&gt; ``` 2. **Action类...

    struts中动态方法调用使用通配符

    动态方法调用(Dynamic Method Invocation,DMI)是Struts框架中的一个重要特性,允许开发者根据不同的请求调用Action类的不同方法,实现灵活的业务逻辑处理。在本例中,我们讨论的是如何结合通配符来更高效地使用...

    struts2 action的三种访问方式

    &lt;constant name="struts.enable.DynamicMethodInvocation" value="true"/&gt; ``` 配置完成后,用户可以通过`/MyAction!methodName.action`来调用`MyAction`类的`methodName`方法。 每种Action访问方式都有其适用...

    Struts2 Action参数详细说明

    动态方法调用(Dynamic Method Invocation, DMI)是Struts2提供的一种简化配置的方式。通过DMI,我们可以在URL中直接指定要调用的方法,而无需为每个方法创建单独的Action配置。配置示例如下: ```xml ...

    struts2教程下(chap8到最后)

    在后续章节中,你会深入到Struts2的动态方法调用(Dynamic Method Invocation,DMI)和固定方法调用(Fixed Method Invocation,FMI)的区别。DMI允许你根据用户请求动态选择Action的方法,而FMI则更倾向于每个Action...

    struts2学习笔记

    2. **动态方法调用(DMI, Dynamic Method Invocation)**: 动态方法调用允许我们不直接以Action名称作为表单的`action`属性,而是以`actionName!methodName.action`的形式指定,这样可以根据不同的`methodName`调用...

    struts2中Action数据绑定几种方法.rar

    6. **动态方法调用(Dynamic Method Invocation,DMI)** DMI允许根据请求参数动态地调用Action方法。这种方法的数据绑定通常是通过OGNL表达式完成的,使得Action类可以更加简洁。 ```java public class MyAction...

    Struts2框架安全缺陷1

    例如,动态方法调用(Dynamic Method Invocation,DMI)允许根据请求参数调用Action中的方法,但如果不恰当配置,可能会导致远程代码执行(RCE)的风险。此外,OGNL表达式语言的使用,虽然增强了灵活性,也可能成为...

    java eclipse

    此配置项用于控制Struts是否启用动态方法调用(Dynamic Method Invocation,简称DMI)。DMI允许Struts框架在执行Action时通过字符串形式指定要调用的方法,从而实现更灵活的功能。默认情况下,DMI是开启状态(`value...

    struts2帮助文档

    五、动态方法调用(Dynamic Method Invocation,DMI) Struts2支持动态方法调用,意味着你可以直接根据请求的URL调用Action类中的方法,而无需预先在配置文件中显式声明。 六、OGNL(Object-Graph Navigation ...

Global site tag (gtag.js) - Google Analytics