User.java
package com.bulktree.struts2;
public User {
private String username;
private String password;
public String getUsername {
.out.prln("******getUsername******");
username;
}
public void Username(String username) {
.out.prln("*******Username********");
this.username = username;
}
public String getPassword {
.out.prln("******getPassword*******");
password;
}
public void Password(String password) {
.out.prln("******Password*********");
this.password = password;
}
}
login2.jsp
<s:form action="login2" method="post">
<s:textfield name="user.username" label="USERNAME" tooltip="Enter Your UserName"></s:textfield>
<s:password name= "user.password" label="PASSWORD" tooltip="Enter Your PassWord"></s:password>
<s:submit label="login"></s:submit>
</s:form>struts.xml文件中action配置:
<action name="login2" ="com.bulktree.struts2.LoginAction2">
<result name="success">/welcome.jsp</result>
<result name="input">/login2.jsp</result>
</action>
LoginAction2.java:
package com.bulktree.struts2;
import com.opensymphony.xwork2.ActionSupport;
public LoginAction2 extends ActionSupport {
private User user;
private String message;
public void User(User user) {
.out.prln("********User***********");
this.user = user;
}
public User getUser {
.out.prln("*********getUser*************");
user;
}
public String getMessage {
.out.prln("************getMessage********");
message;
}
@Override
public String execute throws Exception {
.out.prln("*****execute******");
("bulktree".equals(user.getUsername) && "oakertree".equals(user.getPassword)) {
message = "Welcome, " + user.getUsername;
} {
message = "Error!";
}
ActionSupport.SUCCESS;
}
@Override
public void validate {
.out.prln("******validate******");
(null user.getUsername || user.getUsername.length < 5) {
this.addFieldError("username","USERNAME ERROR");
}
(null user.getPassword || user.getPassword.length < 5) {
this.addFieldError("password","PASSWORD ERROR");
}
}
}
welcome.jsp:
YOUR USERNAME:<FONT size="5" color="red"><s:property value="user.username"/></FONT><br>
YOUR PASSWORD:<FONT size="5" color="red"><s:property value="user.password"/></FONT><br>控制台输出及分析:
*********getUser************* //得到User类例子
********User*********** //执行User准备赋值操作
******Password********* //赋值操作此时是真正赋值
*********getUser************* //得到User类例子
*******Username******** //赋值操作此时是真正赋值
以上有struts2框架自动执行
******validate****** //表单验证
******getUsername****** //表单验证时get思路方法(判断username)
******getUsername****** //表单验证时第 2次get思路方法(判断username)
******getPassword******* //表单验证时get思路方法(判断password)
******getPassword******* //表单验证时第 2次get思路方法(判断password)
*****execute****** //业务逻辑
******getUsername****** //get思路方法
******getPassword******* //get思路方法
下由Struts2框架自动执行
*********getUser************* //得到User类例子
******getUsername****** //自动执行get思路方法
********getUser************* //得到User类例子
******getPassword******* //自动执行get思路方法
我们可以把类属性分离出来实现系统架构清晰、明了
最新评论