<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<package name="default" extends="struts-default">
<action name="login" class="com.test.web.LoginAction">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
------------
<form action="login!userlogin.action" method="post">
username:<input type="text" name="username"><bt>
password:<input type="password" name="password"><br>
<input type="submit" value="提交">
</form>
--------------
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String userlogin() throws Exception {
if(this.username.equals("admin")&&this.password.equals("admin")){
return "success";
}
else{
return "error";
}
}
---------------
HTTP Status 404 - /struts2/login!userlogin.action
---------------------
说明:不使用通配符和action中配置method的方法
<constant name="struts.devMode" value="true" />
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<package name="default" extends="struts-default">
<action name="login" class="com.test.web.LoginAction">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
------------
<form action="login!userlogin.action" method="post">
username:<input type="text" name="username"><bt>
password:<input type="password" name="password"><br>
<input type="submit" value="提交">
</form>
--------------
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String userlogin() throws Exception {
if(this.username.equals("admin")&&this.password.equals("admin")){
return "success";
}
else{
return "error";
}
}
---------------
HTTP Status 404 - /struts2/login!userlogin.action
---------------------
说明:不使用通配符和action中配置method的方法
<package name="default" extends="struts-default" namespace="/">
<form action="/login!userlogin.action" method="post">
代码没什么问题
问题可能出现在你的web.xml中
你的路径的配置
web.xml找不到你的login
Struts2官方documents是这样说的.!
而且动态方法调用有个弊端,把你Action的方法名暴露给外界了.!
还有,每个Action方法都应该有自己相应的视图配置,动态方法调用的话, 那就是多个Action公用一套视图方案, 你觉得这样能合理吗.?
default/login.action