我已经对我的登录表单进行了验证它工作正常但输入正确的用户名和密码后没有执行任何操作,也没有在成功登录后打开jsp页面
这是我的登录表单
<s:form validate="true" action="login">
<br>
<table class="bg" cellspacing="0">
<tr class="logindiv">
<td >
</td>`enter code here`
<td>
Sign In
</td>
</tr>
<tr>
<td>
<s:textfield label="Username" name="obj2.user" cssStyle="height:25px; width:150px;"></s:textfield>
</td>
</tr>
<tr>
<td>
<s:password label="Password" name="obj2.pass" cssStyle="height:25px;width:150px;"></s:password>
</td>
</tr>
<tr>
<td>
<center>
<s:submit value="Login" cssClass="login"></s:submit>
</center>
</td>
</tr>
</table>
</s:form>
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<action name="login" class="IndianUserActionModule.indianAction" method="Login">
<result name="input">index.jsp</result>
<result name="success">IndianHome.jsp</result>
<result name="fail">index.jsp</result>
</action>
</package>
</struts>
答案 0 :(得分:0)
在struts配置中,您将操作映射到包配置的特定命名空间。但是在JSP表单中,您将操作映射到默认命名空间。这些是不同的命名空间,您的操作配置在默认命名空间中找不到,因此失败。您应该使用s:form
标记的namespace属性来指定用于映射操作的命名空间。例如
<s:form validate="true" namespace="/" action="login">
可以让example更好地理解名称空间概念。