今天刚接触struts2 ,有点晕了,现在要做的一个功能是基于struts2框架,模拟用户登录功能的一个小作业,
让我们写一个login.jsp页面,表单提供用户名输入框,和密码输入框.提交按钮.
用post方式提交.这里我是没有问题的- -..
问题就是 怎么在action里面 验证 login.jsp里面的 值?并且进行判断!!
UserAction中的login方法进行验证,name=jack,pass=123(不要和数据库交互)
如果匹配,返回一个loginSuccess.jsp,
并显示:
您好,jack! 当前时间是:yyyy-MM-dd (时间是服务器时间,也无需跳动更新)
如果登录失败,返回登录页面:
在表单上方显示:
用户名或密码错误!
------解决思路----------------------
大致思路就是
剩下的自己做吧
public class HelloAction {
private String username;
private String pass;
private String date;
public void setUsername(String username) {
this.username = username;
}
public void setPass(String pass) {
this.pass = pass;
}
public String getDate() {
return date;
}
public String helloMethod() throws Exception{//后
if("用户名".equals(username) && "密码".equals(pass)) {
date = "日期格式化";
return "ok";
} else {
return "ng";
}
}
}
<action
name="helloRequest"
class="xx.HelloAction"
method="helloMethod">
<result name="ok" type="dispatcher">
/ok.jsp
</result>
<result name="ng" type="dispatcher">
/ng.jsp
</result>
</action>
------解决思路----------------------
login.jsp中表单(省略号根据自己情况填吧):
<body>
<center>
<s:form action="..." method="...">
<s:textfield name="name" label="姓名" size="20"/>
<s:password name="pass" label="密码" size="20"/>
<s:submit value="提交" align="center"></s:submit>
</s:form>
</center>
</body>
action类中定义字符串属性name,pass(跟表单的属性名相同)还要生成相应getter、setter;
然后就在你调用的方法中判断就行了,返回不同的字符串对应不同的jsp,比如:
...(){
if(...){
return SUCCESS;
}else{
return INPUT;}
}
struts-xml中:
<action name="..." method="..." class="...">
<result name="success">/loginSuccess.jsp</result>
<result name="input">/login.jsp</result>
</action>
如果还要在表单上提示用户名或密码不对等信息,建议看一下拦截器
------解决思路----------------------
public class LoginAction extends ActionSupport{
private String username;
private String pass;
private String date;
public void setUsername(String username) {
this.username = username;
}
public void setPass(String pass) {
this.pass = pass;
}
public String getDate() {
return date;
}
public String execute() throws Exception{//后
if("用户名".equals(username) && "密码".equals(pass)) {
date = "日期格式化";
return SUCCESS;
} else {
return ERROR;
}
}
}
<action name="访问名" class="包.类名称">
<result>/success.jsp</result>
<result name="error">/error.jsp</result>
</action>