struts2 的一二三

  最近由于项目需要,对strusts2做了一些学习。和大家分享下学习的心得。
  发现struts2和webwork有着惊人的相似。struts2其实用的还是webwork包里的拦截器。原理上来说struts2是对http请求在容器的filter层做了拦截。并且对servlet层做了包装。我们可以不需要提供serlet了,而是只要提供一个方法就可以了。只要方法符合它的要求就可以了。其实要求也比较宽泛,只要方法返回一个字符串,如果需要传递数据,则提供一个数据容器bean及bean的属性代理方法。这样子就可以和页面传递数据了。 还有一个需要注意的是,struts2现在的页面数据是在页面上通过tag 来 pull出来的。对 EL没有支持。即原来struts1里面 我们去数据可以
${<the var in the request>}
,通过tag,但是原理上差别不大。觉得这样子可以比较专注于业务逻辑处理。
  还是来段代码把,嘴上说的太虚,还是真刀真枪的干才是真理啊。
 
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.yqg;

/**
 *
 * @author jonson_yu
 */
public class HelloWorld {
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
    
    public String doWork(){
        //TODO  do you own work
        
        //传递name数据到页面上。当然这个string类型的bean可以是任意的你自定义的bean。
        setName("your name!");
        //返回的字符串要符合默认规则。success会默认的找到配置文件里的第一配置的跳转页面
        //作为跳转页。  也可以自己定义跳转名字,要在配置文件里配置。
        if(false){
            return "goOtherPage";
        }
        return "success";
    }
}


<actions package=""...>
    <action name="dowork" class="com.yqg.HelloWorld" method="doWork">
        <result name="goOtherPage">/otherPage.jsp</result>
    </action>
</actions>


  关于具体配置的网上文章比较多,可以看 http://xuliangyong.iteye.com/blog/72862 这里。整个用下来感觉struts2还是非常不错的一个框架。让我们更专注于业务逻辑。但是在开发过程中发现,大量的发射调用,在性能上有所下降。没有做具体的测试,不知有没有哪位有比较深入的研究性能的。

你可能感兴趣的:(bean,框架,jsp,servlet,Webwork)