Thinking

快乐编程,开心生活
posts - 21, comments - 27, trackbacks - 0, articles - -5
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

struts2学习Tips

Posted on 2007-02-26 10:23 lixw 阅读(585) 评论(2)  编辑  收藏
1、在Action中获得Servlet API中的对象:
1 com.opensymphony.xwork2.ActionContext context = ActionContext.getContext();
2 HttpServletRequest request = org.apache.struts2.ServletActionContext.getRequest();
3 HttpServletResponse response = org.apache.struts2.ServletActionContext.getResponse();
4 HttpSession session = request.getSession();

    获取与Servlet运行环境无关的Session集合:
Map sessionMap = ActionContext.getContext().getSession();
    IOC方式访问,可以通过实现ServletRequestAware、ServletResponseAware和SessionAware。
参考WebWork API
2、自定义Action调用方法:
  • 在struts.xml的action配置中,增加属性method="aliasMethod";
  • 在访问Action的URL中增加!aliasMethod.action,形如 http://localhost:8080/app/ActionName!aliasMethod.action。
3、自己布局form:
    给<s:form />增加属性theme="simple"。

4、WebWork中的特殊命名对象:
    #prameters['foo'] or #parameters.foo                request.getParameter("foo");
    #request['foo'] or #request.foo                     request.getAttribute("foo");
    #session['foo'] or #session.foo                     session.getAttribute("foo");
    #application['foo'] or #application.foo             application.getAttribute("foo");
    #attr['foo'] or #attr.foo                           pageContext.getAttribute("foo");
  

评论

# re: struts2学习Tips  回复  更多评论   

2007-02-26 14:09 by kawaii
5、在webwork处理集合:
List的语法:{e1,e2,e3}
Map的语法:#{key1:value1,key2:value2,key3:value3}
例如:
<s:select label="'list'" name="'name'" list="{'name1','name2'}" />
<s:select label="'list'" name="'name'" list="#{'foo':'foovalue', 'bar':'barvalue'}" />
判断一个元素是否在一个集合中可以用in和not in:
例如:
<ui:if test="'foo' in {'foo','bar'}">
muhahaha
</ui:if>
<ui:else>
boo
</ui:else>
<ui:if test="'foo' not in {'foo','bar'}">
muhahaha
</ui:if>
<ui:else>
boo
</ui:else>

选择集合的一个子集, 可以在集合中使用通佩符(wildcard).

? 所有匹配选择逻辑的元素
^ 第一个匹配选择逻辑的元素
$ 最后一个匹配选择逻辑的元素

例如:从对象Person中获取男性亲属的子集:
person.relatives.{? #this.gender == 'male'}

# re: struts2学习Tips  回复  更多评论   

2007-02-26 14:47 by kawaii
6、国际化:
使用全局资源文件:在struts.xml中配置
struts.custom.i18n.resources=globalMessages;
使用包范围的资源文件:在类所处的包下面建立名为package.properties和
package_zh_CN.properties的资源文件;
使用Action范围的资源文件:在与Action类相同的目录下建立与Action同名
(除过后缀)的properties文件,作为供此Action访问的局部资源文件;
使用<s:i18n />标签。

资源文件的查找顺序参考:http://www.blogjava.net/max/archive/2006/11/01/78536.html

只有注册用户登录后才能发表评论。


网站导航: