package com.test.action;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport{
private String username;
private String userpassword;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpassword() {
return userpassword;
}
public void setUserpassword(String userpassword) {
this.userpassword = userpassword;
}
public String execute() throws Exception{
if("hello".equals(this.getUsername().trim())&&"word".equals(this.getUserpassword().trim())){
return "success";
}
else{
this.addFieldError("username", "username or password required");
return "failer";
}
} public void validate() {
if(null==this.getUsername()|"".equals(this.getUsername().trim())){
this.addFieldError("username","username required");
}
if(null==this.getUserpassword()|"".equals(this.getUserpassword().trim())){
this.addFieldError("userpassword","userpassword required");
}
}{
}
问题1. validate() 跟execcute()方法一样嘛?都是系统自动调用吗?不用页面调用吗?
2.什么情况下需要抛出异常 ,为什么要抛出异常,请结合本例说明。。
3.Struts.xml文件里 <action name="input">中的INPUT对应validate方法吗?是固定这么写的吗?只要方法validate运行 就会找到INPUT的吗?
private String username;
private String userpassword;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpassword() {
return userpassword;
}
public void setUserpassword(String userpassword) {
this.userpassword = userpassword;
}
public String execute() throws Exception{
if("hello".equals(this.getUsername().trim())&&"word".equals(this.getUserpassword().trim())){
return "success";
}
else{
this.addFieldError("username", "username or password required");
return "failer";
}
} public void validate() {
if(null==this.getUsername()|"".equals(this.getUsername().trim())){
this.addFieldError("username","username required");
}
if(null==this.getUserpassword()|"".equals(this.getUserpassword().trim())){
this.addFieldError("userpassword","userpassword required");
}
}{
}
问题1. validate() 跟execcute()方法一样嘛?都是系统自动调用吗?不用页面调用吗?
2.什么情况下需要抛出异常 ,为什么要抛出异常,请结合本例说明。。
3.Struts.xml文件里 <action name="input">中的INPUT对应validate方法吗?是固定这么写的吗?只要方法validate运行 就会找到INPUT的吗?
解决方案 »
- 紧急求助!!!!extjs上传文件,非文件表单的值无法获得!!!!google半天无果!!!
- 怎样可以吧数据库数据在页面上有规律的显示出来
- 想问问朋友,有谁研究过"opencustomer"这个开源项目的?进来讨论讨论。
- 关于spring集成hibernate的问题
- 如何用httpclient获得网页内容
- 如何让xml 和java bean之间能进行最大程度的灵活性的转换?
- 我想批量执行insert和update请问如何做效率才高?我现在用addBatch的方法,但感觉和单独多次使用executeQuery的速度差不多,都一样的慢,
- jsp中解决复选框的问题!
- 求教smartupload如何实现将上传的文件直接插入数据库和文件下载的功能?一定多给分!
- <jsp:setProperty>应该怎么用呀?
- 怎么处理session过期的情况?
- jsp在 windows 2003的设置问题 在线等
1.this.getUsername().trim()中的.trim()是什么意思 我知道是空格的意思。但我不明白 获取用户名字干嘛还要加空格
2.this.addFieldError("username","username required"); 前面这个THIS 是不是有点多余
2,Strust2中也可以使用validation.xml配置文件实现验证,具体google一下。
3,调用了有可能出现异常的方法最好都要捕捉或声明抛出异常,如果你以上代码中validate有效则不会抛出异常;
<action name="input">中的INPUT对应页面上响应的action名称,楼主想说的是不是<result name="input"....>啊?
另外,trim()是去掉空格的意思而不是加空格;
this.addFieldError("username","username required"); 前面这个THIS 可有可无。
return failer 以后 是不是就回到了JSP页面?--是的,到了页面当然不执行validate,要执行也是在进入execcute方法之前执行的。希望对你有帮助。