<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,Dynamic Method Invocation)是Struts2框架中一个特色功能,允许开发者通过URL直接调用Action类中的方法,而无需预先在配置文件中显式声明这些方法。这种机制增加了开发的灵活性,但也...
在Struts2中,动态方法调用(Dynamic Method Invocation,DMI)是一种特性,允许我们通过URL直接调用Action类的方法,而无需在配置文件中显式指定。这在某些情况下提供了更大的灵活性。 在Struts2的动态方法调用中...
Struts2作为一款流行的Java Web框架,其动态方法调用(Dynamic Method Invocation,DMI)功能为开发者提供了极大的灵活性。在传统的MVC模式中,控制器(Controller)通常通过硬编码的方式处理请求,而动态方法调用则...
Struts2的一个强大特性是其支持动态方法调用(Dynamic Method Invocation,DMI),这是通过URL中的"!"符号实现的。当URL中包含"!"时,Struts2会尝试解析该字符串,寻找Action类中与之匹配的方法。这种方式允许我们...
**动态方法调用(Dynamic Method Invocation,DMI)** 在Struts2中,动态方法调用是其一大特性,允许开发者通过URL直接调用Action类中的方法。默认情况下,Struts2会尝试将Action类的公共方法与请求路径关联,如果...
在Struts2中,动态方法调用(Dynamic Method Invocation,DMI)是一种特性,允许开发者通过URL直接调用Action类的方法,而不仅仅是Action类本身。这个特性在某些场景下能够提高代码的灵活性和可维护性。 动态方法...
要启用动态方法调用,需要在Struts配置文件中设置`struts.enable.DynamicMethodInvocation`常量为`true`,默认情况下它是启用的。 **示例:** 在登录验证的Action类中,可以添加一个注册用户的`register`方法...
Struts2的动态方法调用(Dynamic Method Invocation,DMI)允许我们根据用户输入来决定执行哪个Action方法。在没有明确的方法名时,Struts2会尝试匹配Action类中的方法。这种方式增加了代码的灵活性,但同时也可能...
Struts2是一个流行的Java web框架,它提供了许多强大的特性,其中一种是动态方法调用(Dynamic Method Invocation,简称DMI)。DMI允许我们在不修改配置文件的情况下,通过URL动态地调用Action类的不同方法,增强了...
1. **开启DMI:** 需要在struts.xml配置文件中设置`struts.enable.DynamicMethodInvocation`为`true`。 ```xml <constant name="struts.enable.DynamicMethodInvocation" value="true"/> ``` 2. **Action类...
动态方法调用(Dynamic Method Invocation,DMI)是Struts框架中的一个重要特性,允许开发者根据不同的请求调用Action类的不同方法,实现灵活的业务逻辑处理。在本例中,我们讨论的是如何结合通配符来更高效地使用...
<constant name="struts.enable.DynamicMethodInvocation" value="true"/> ``` 配置完成后,用户可以通过`/MyAction!methodName.action`来调用`MyAction`类的`methodName`方法。 每种Action访问方式都有其适用...
动态方法调用(Dynamic Method Invocation, DMI)是Struts2提供的一种简化配置的方式。通过DMI,我们可以在URL中直接指定要调用的方法,而无需为每个方法创建单独的Action配置。配置示例如下: ```xml ...
在后续章节中,你会深入到Struts2的动态方法调用(Dynamic Method Invocation,DMI)和固定方法调用(Fixed Method Invocation,FMI)的区别。DMI允许你根据用户请求动态选择Action的方法,而FMI则更倾向于每个Action...
2. **动态方法调用(DMI, Dynamic Method Invocation)**: 动态方法调用允许我们不直接以Action名称作为表单的`action`属性,而是以`actionName!methodName.action`的形式指定,这样可以根据不同的`methodName`调用...
6. **动态方法调用(Dynamic Method Invocation,DMI)** DMI允许根据请求参数动态地调用Action方法。这种方法的数据绑定通常是通过OGNL表达式完成的,使得Action类可以更加简洁。 ```java public class MyAction...
例如,动态方法调用(Dynamic Method Invocation,DMI)允许根据请求参数调用Action中的方法,但如果不恰当配置,可能会导致远程代码执行(RCE)的风险。此外,OGNL表达式语言的使用,虽然增强了灵活性,也可能成为...
此配置项用于控制Struts是否启用动态方法调用(Dynamic Method Invocation,简称DMI)。DMI允许Struts框架在执行Action时通过字符串形式指定要调用的方法,从而实现更灵活的功能。默认情况下,DMI是开启状态(`value...
五、动态方法调用(Dynamic Method Invocation,DMI) Struts2支持动态方法调用,意味着你可以直接根据请求的URL调用Action类中的方法,而无需预先在配置文件中显式声明。 六、OGNL(Object-Graph Navigation ...