struts2 的一些心得

struts2   s:form标签不用加.action,validate()验证,parameter和getAtrribute的区别心得 2010-05-21 17:02:28 阅读304 评论1   字号:大中小 订阅 .

1、 s:form标签为何不用加.action
在struts2中form标签已经默认地加了.action.会自动去执行.action文件。所以在form标签的ACTION属性中只加action名就好,不必加.action后缀。
如:<s:form action="login" method="post"></s:form>
而不用<s:form action="login.action" method="post"></s:form>

2、validate()方法验证
一个ACTION类继承ActionSupport有何用处?
答:在ActionSupport中实现了很多接口,就拿一个来讲,validate()方法,是默认的验证。我们可以在我们的action类中重写一下此方法。比方说验证用户名是否为空。这个方法不需要调用,当S:FORM表单提交了,到了action类中会首先执行此方法。对数据进行验证。
(1)、前台页面
<s:form action="login" method="post">
   <s:textfeild name="username" label="username"/>
</s:form>
(2)、login.action页面
class Login extends ActionSupport{
   private String username;
  ...//username的set(),get()方法
  //execute()方法
public String validate(){
    if("".equals(this.getUsername()) || null == this.getUsername()){
         this.addFieldErro("username","username can't null");//参数1是前台组件名称,后面是提示。此错误信息会在此组件的前面显示这句话
    }

}
(3)、struts.xml文件
输出的错误信息会返回一个input 值。所以XML文件中需要定义一个结果为 input 的结果
<result name="input">/...jsp</result>

3、常量.equals("变量");有何好处
如:"".equals(this.getUsername());
     "toList".equals(this.getAct());
这样避免了,如果获取的变量为NULL时抛出的空异常是一个好习惯

4、parameter和attribute()有何区别?
   parameter是获取从前台地址栏中或FORM表单中传过来的参数,并且类型都为String字符串类型
   attribute是放在服务器的值和键的数组。类型可为用户指定的,可以是一个类,也可以是基本类型的数据


http://cyflkyz.blog.163.com/blog/static/501149342010421522860/

猜你喜欢

转载自charles0731.iteye.com/blog/1044170