`
simpledev
  • 浏览: 196196 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ww.action标签在freemarker中的问题

阅读更多

1.问题描述:
 在freemarker页面文件ftl中,使用<@ww.action name="test" executeResult="true" />显示xwork.xml中action为test返回result页面内容,
  <action name="test" class="org.TestAction">
   <result name="success" type="freemarker">
    /WEB-INF/hello.ftl
   </result>
  </action>
  
  <action name="test2" class="org.TestAction2">
   <result name="success" type="dispatcher">
    /hello.jsp
   </result>
  </action>
 如果为executeResult="false",表示不返回result页面.
 xwork.xml
  <action name="actionTagAction" class="org.ActionTagAction">

  </action>
 org.ActionTagAction action类
  private Map map = new HashMap();
 public String execute() throws Exception {
  ServletActionContext.getRequest().setAttribute("stringByAction", "This is a String put in by the action's doDefault()");
  map.put("01", "男");
  map.put("00", "女");
  return NONE;
 }

 public Map getMap() {
  return map;
 }
 public void setMap(Map map) {
  this.map = map;
 }
 ftl中使用action标签
 <@ww.action name="actionTagAction" executeResult="false" id="sexs"/>
 <@ww.property value="#attr.stringByAction" />
 <@ww.radio label="性别" name="sex" list="#sexs.map" value="'01'"/>
 

 <@ww.action />在使用jetty运行时,正常显示,但是使用tomcat时候,返回的result页面不能正常显示,报错:
 WebWork Problem Report
 WebWork has detected an unhandled exception:
 Messages: Cannot create a session after the response has been committed 
 --------------------------------------------------------------------------------
 Stacktraces
 java.lang.IllegalStateException: Cannot create a session after the response has been committed
报错的情况是首次请求包含<@ww.action />标签的页面,如果是先请求test,在请求包含<@ww.action />标签的页面是可以正常显示的.
经过测试发现:如果不返回result页面,而是得到test中的map或String变量值时,可以取到值,但是tomcat控制台同样也报出上面的错误,
解决方法: 在使用webwork中action标签时,在jsp页面中使用,返回的result页面不管是jsp或ftl都可以正常显示

(taglib.tld来源于:webwork-2.2.4.jar /META-INF/标签描叙符文件)
<%@taglib prefix="ww" uri="/WEB-INF/taglib.tld"%>
<ww:action namespace="/gl" name="test" executeResult="true" /><br/>
<ww:action namespace="/gl" name="test2" executeResult="true" />
/gl为xwork中的命名空间

webwork中标签在jsp页面中较完善,在freemarker中存在一些问题.

分享到:
评论
1 楼 KimShen 2009-06-18  
那现在你这个问题解决了吗? 还是不使用freemarker了

相关推荐

    WebWork 与 FreeMarker整合开发培训指南

    在与WebWork整合的情况下,FreeMarker模板可以直接调用WebWork的标签,如`&lt;ww:property&gt;`,这使得模板可以方便地访问Action上下文中的属性。例如,`&lt;ww:property value=”orderName”/&gt;`将显示订单名称。这种结合...

    wework深入浅出

    5. 若要使用Freemarker模板引擎,需在web.xml中配置JspSupportServlet,并确保使用适当的标签库。 6. 对于一些特殊需求,如标签库、资源文件的配置,可通过webwork.properties文件进行自定义。 #### WebWork核心...

    webwork入门到精通

    通过`&lt;ww:property value="msg"/&gt;`标签,可以读取Action中的属性,值得注意的是,这一标签并非直接从请求中获取数据,而是从Action的属性中读取。 综上所述,《WebWork入门到精通》课程涵盖了WebWork框架的基础概念...

    WebWork UI标签

    WebWork UI标签是一种用于构建Web应用程序用户界面的组件,它提供了丰富的功能,使得开发者能够更加便捷地创建交互式的Web...在实际开发中,结合WebWork的Action和Interceptor机制,可以实现复杂的业务逻辑和用户交互。

    webwork的api

    WebWork 是一个基于Java的MVC(模型-视图-控制器)框架,它为构建Web应用程序提供了强大的支持。WebWork的API是这个框架的核心...在实际项目中,结合ww2cndoc文档,你可以更深入地了解WebWork的细节,提升开发效率。

    webwork详细讲解.doc

    虽然原文件中没有详细介绍G-Roller-WW的实际应用案例,但这一部分可能涉及如何将WebWork与G-Roller(一个博客平台)结合使用,包括集成JSTL、解决中文问题等。 #### WebWork与其它开源项目的集成 WebWork可以与...

    WebWork教程-0.90版

    提供了对Servlet API的访问,方便在Action中使用。 ##### Interceptor框架 **Interceptor**框架允许在Action执行前后插入特定的行为,如日志记录、性能监控等。 - **Interceptor的原理** Interceptor类似于AOP...

    Struts2_0100

    XML配置通常在struts.xml文件中进行,而注解则可以直接在Action类或方法上使用,使得配置更加简洁直观。 3. **结果类型(Result Types)**:Struts2支持多种结果类型,如JSP、FreeMarker、Velocity等,允许开发者...

    webwork教程很好的学习教程

    - **Field-Driven Action**:直接在Action类中定义字段,并通过`get`和`set`方法进行访问。 - **Model-Driven Action**:通过外部模型对象传递数据,使Action更加轻量级。 #### 五、ActionContext与...

    webwork学习笔记(全)

    Field-Driven Action 直接在Action类中定义字段,这些字段与表单字段一一对应,WebWork自动将请求参数绑定到这些字段上。而Model-Driven Action则通过定义一个模型对象来封装数据,Action仅作为一个操作模型的中介。...

    webwork的很好的例子

    2. **标签(tag)**:WebWork提供了自定义标签库,这些标签可以方便地在JSP页面中使用,简化视图层的开发。它们通常与动作类配合工作,通过表达式语言(EL)和标签库定义文件(TLD)来定义和使用。例如,`&lt;ww:...

    WebWork教程-0.90版.pdf

    - **Interceptor**:拦截器是WebWork中另一个重要的概念,可以在Action执行前或后执行特定的操作,如事务管理、日志记录等。 - **Interceptor的原理**:通过配置文件或注解来定义拦截器链,按照顺序执行各个拦截器。...

    webwork学习笔记

    - 在`web.xml`中配置`ServletDispatcher`作为请求的入口点,用于解析URL并调用相应的Action进行业务处理。 #### 三、HelloWorld示例 - **实现步骤**: 1. 创建Action类。 2. 定义Action的处理逻辑。 3. 配置...

    WebWork简明教程

    - **值堆栈**:OGNL通过值堆栈(OgnlValueStack)来管理数据上下文,使得Action中的数据可以在整个WebWork生命周期内共享。 #### 拦截器框架 - **原理**:通过定义一系列拦截器来增强Action的功能,如日志记录、...

    webwork

    **Action** 在WebWork中扮演着处理请求的核心角色,其主要职责包括接收请求参数、执行业务逻辑及决定视图返回。Action可以分为两种类型: - **Field-Driven Action**:直接利用Action类中的字段作为请求参数。 - **...

    webwork快速入门

    **XWork配置**主要集中在`xwork.xml`文件中,该文件定义了Action、拦截器、结果类型等内容。深入理解XWork配置有助于更好地利用WebWork的功能。 #### 七、实战案例:G-Roller-WW **G-Roller-WW**是一个实战项目,...

    webwork教程

    - OGNL是一种强大的表达式语言,用于在Action中访问和操作对象。 - 通过值堆栈(OgnlValueStack)来管理和操作数据。 - **Interceptor框架**: - Interceptor框架允许开发者编写自定义的拦截器来处理请求。 - ...

    WebWork 教程

    通过OGNL,开发者可以轻松地访问和操作值堆栈(Value Stack)中的对象,值堆栈是WebWork用于存储和传递数据的核心机制之一,它在Action执行过程中保持数据的连续性,使得数据能够在多个Action之间共享。 #### 拦截...

Global site tag (gtag.js) - Google Analytics