1. login.jsp
<s:form action="login" method="post">
<s:textfield name="username" label="username"></s:textfield>
<s:textfield name="password" label="password"></s:textfield>
<s:submit label="提交"></s:submit>
</s:form>
2. struts.xml <action name="login" class="test.LoginAction">
<result name="success">/result.jsp</result>
<result name="input">/login.jsp</result>
</action>
3. LoginAction.java
public class LoginAction extends ActionSupport { private String password;
private String username; 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 execute() throws Exception {
System.out.println("execute~~~~~~~~");
return "success";
} @Override
public void validate() {
System.out.println("validate~~~~~~~~~~~~");
if ( null == this.username.trim())
{
this.addFieldError("username", "username requires");
}
if ( null == this.password.trim())
{
this.addFieldError("password", "password required");
}
}4. 问题描述: 如果当username和password两个都没有填的时候,提交会转到成功的页面,而不是input页面,并且在控制台会打印出validate~~~~~~~~~~~~
execute~~~~~~~~
我的struts版本是2.0.12的。
<s:form action="login" method="post">
<s:textfield name="username" label="username"></s:textfield>
<s:textfield name="password" label="password"></s:textfield>
<s:submit label="提交"></s:submit>
</s:form>
2. struts.xml <action name="login" class="test.LoginAction">
<result name="success">/result.jsp</result>
<result name="input">/login.jsp</result>
</action>
3. LoginAction.java
public class LoginAction extends ActionSupport { private String password;
private String username; 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 execute() throws Exception {
System.out.println("execute~~~~~~~~");
return "success";
} @Override
public void validate() {
System.out.println("validate~~~~~~~~~~~~");
if ( null == this.username.trim())
{
this.addFieldError("username", "username requires");
}
if ( null == this.password.trim())
{
this.addFieldError("password", "password required");
}
}4. 问题描述: 如果当username和password两个都没有填的时候,提交会转到成功的页面,而不是input页面,并且在控制台会打印出validate~~~~~~~~~~~~
execute~~~~~~~~
我的struts版本是2.0.12的。
解决方案 »
- Cannot convert A857 of type class java.lang.String to class java.lang.Integer
- maven 问题
- 很急,帮帮忙。spring+servlet+连接池的问题
- Hibernate的查询方法、关联配置的问题
- 一个关于DIV的问题 (紧急求救,谢谢你们了)
- 求助高手:在jsp中不使用form如何传递本页面要输入的文本框内容到下一个页面?先谢谢啦
- 在struts里,已经在filter里设置 Globals.LOCALE_KEY 的情况下,为什么<bean:message>还只输出zh_CN里的内容呢
- 【500分】求“用jbuilder9 + weblogic开发web service的step by step教程?最好是调用ejb”急!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- JBOSS和EJB是什么关系???
- 项目windows下运行正常,但部署到linux上已启动tomcat就报错,求大神帮助解决
- 【急】hibernate no persistent classes found for query class:
- 请问为什么在applicatoin初始化时不能执行webservice
原因是因为空字符串执行trim方法后会返回一个空的字符串对象,所以 null == this.username.trim() 返回true参考资料:
trim()
if there is no character ,then a new String object representing an empty string is created and returned
我的判断一直这么写
null == this.username || "".equals(this.username.trim())