最近由于项目需要,对strusts2做了一些学习。和大家分享下学习的心得。
发现struts2和webwork有着惊人的相似。struts2其实用的还是webwork包里的拦截器。原理上来说struts2是对http请求在容器的filter层做了拦截。并且对servlet层做了包装。我们可以不需要提供serlet了,而是只要提供一个方法就可以了。只要方法符合它的要求就可以了。其实要求也比较宽泛,只要方法返回一个字符串,如果需要传递数据,则提供一个数据容器bean及bean的属性代理方法。这样子就可以和页面传递数据了。 还有一个需要注意的是,struts2现在的页面数据是在页面上通过tag 来 pull出来的。对 EL没有支持。即原来struts1里面 我们去数据可以
还是来段代码把,嘴上说的太虚,还是真刀真枪的干才是真理啊。
关于具体配置的网上文章比较多,可以看 [url]http://xuliangyong.iteye.com/blog/72862[/url] 这里。整个用下来感觉struts2还是非常不错的一个框架。让我们更专注于业务逻辑。但是在开发过程中发现,大量的发射调用,在性能上有所下降。没有做具体的测试,不知有没有哪位有比较深入的研究性能的。
发现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>
关于具体配置的网上文章比较多,可以看 [url]http://xuliangyong.iteye.com/blog/72862[/url] 这里。整个用下来感觉struts2还是非常不错的一个框架。让我们更专注于业务逻辑。但是在开发过程中发现,大量的发射调用,在性能上有所下降。没有做具体的测试,不知有没有哪位有比较深入的研究性能的。