当前位置: 代码迷 >> Java Web开发 >> struts2一个容易的模块功能,求指导
  详细解决方案

struts2一个容易的模块功能,求指导

热度:100   发布时间:2016-04-16 21:43:24.0
struts2一个简单的模块功能,求指导!
今天刚接触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>

  相关解决方案