Struts2学习2

今天老师的第二讲,主要是讲的是一个jsp页面输入的一个校验~ 

首先,老师将“第一讲”的LoginAction类,继承extendsActionSupport

然后通过struts2文件夹中的docs,检索到了ActionSupport的API,发现里面包含了Action最常用的一些方法。

其中就提到了一个校验的方法:

public void validate()------这个校验函数,不应该去进行业务逻辑的校验,也就是不带过多的逻辑,一般作用在本次例子中就是用来判断是否为空的基本作用。

 

1. LoginAction中的验证函数
@Override 
public void validate() { 
if(this.getUsername()==null ||"".equals(this.getUsername().trim())) 
{ 
this.addFieldError("username", "Please enter your username!"); 
} 
if(this.getPassword()==null ||"".equals(this.getPassword().trim())) 
{ 
this.addFieldError("password", "Password required!"); 
}
 

 相关联的login2.jsp中的代码

<body>
   <s:form action ="login">
   <s:textfield name ="username" label="username"></s:textfield>
   <s:password  name ="password" label="password"></s:password>
   <s:submit  label="Submit"></s:submit>
   </s:form>   
  </body>

 

其中this.addFieldError(String arg0, String arg1)中的arg0,要和jsp中的<s:textfield name="xxx" ...> xxx保持一致,这样才能得到关联。arg1的字符串,是代表,显示出错后,屏幕上输出的提示文字。

 

2. 并且,在修改完LoginAction.java文件后,需要返回struts.xml文件进行相应的配置!

   <result name="input">/login2.jsp</result>

 注意,此时对应validate的校验函数执行后,会自动的寻找固定的result name="input",所以,这里validate()和input是固定搭配。   这里表示当validate()函数执行完成之后,会自动的返回到login2.jsp页面

 

3.  显示页面:



 

B.  如果还需对前台界面的输入进行逻辑验证的话,此时应该将逻辑写在LoginAction.class的execute函数中。

而不是Validate()

在此次例子中,我们加入需求:“界面输入的username和密码只有分别匹配了hello,world才能成功,否则报错”

 

 1.  LoginAction.java中的execute方法:

public String execute() throws Exception
{
       if("hello".equals(this.getUsername().trim())&&"world".equals (this.getPassword().trim()))
             {
	  return "success";
              }
       else
             {
	this.addFieldError("username", "username or password error!!");
	return "failer";
	}
		
}

 注意:return “failer”

 

2. 所以现在我们需要返回到Struts.xml进行相应的配置。

struts.xml代码:

  <result name="failer">/login2.jsp</result>

代表,当return failer时,前台页面会自动的返回login2.jsp中  

 

3. 结果如图:当输入的username和密码分别为 asd,123 的时候,与我们要求的需求不匹配,此时页面转换成

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值