我找了一天,还是没有找到想要的答案……求高手解答。第一次使用Freeer,不熟悉啊。我把我测试的代码也列出来了,懂的兄弟朋友,帮忙看看啊!需求:跟一般的CMS一样,首页由几个栏目列表组成。每个栏目列表都对应一个模板文件。我看了其他CMS的模板文件,首页的ftl都是这样的:<#include "common_tag.ftl"/>
<#include "other_tag.ftl"/>
<#include "action_cms.ftl"/>
<#include "action_article.ftl"/>
<#include "action_auxiliary.ftl"/>
<#include "nonaction_article.ftl"/>
<#include "action_download.ftl"/>我的问题是,这些对应的ftl文件的Action是怎么调用的?我写了一个测试文件,Action如下,对应的ftl文件是ts1.ftl
public class Ts1Temp extends ActionSupport {

private static final long serialVersionUID = -4899468783043171233L;
private String names; public String execute(){
this.names ="Sina";
return SUCCESS;
}
public String getNames() {
return names;
}
public void setNames(String names) {
this.names = names;
}
}
第二个文件是ts2.ftl,对应的Action是:public class Ts2Temp extends ActionSupport {

private static final long serialVersionUID = -4899468783043171233L;
private String name; public String execute(){
this.name ="Sina";
return SUCCESS;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = names;
}
}
第一个FTL文件的内容:the value of ts.ftl : <@s.property value="name"/>
<br/>
<#include "ts2.ftl"/>第二个FTL内容:the value of ts2.ftl : <@s.property value="names"/><br/>Struts2的配置文件:
<action name="ts" class="test.tmpl.TsTemp">
    <result name="success" type="freeer">WEB-INF/ts.ftl</result>
</action>
    
<action name="ts2" class="test.tmpl.Ts2Temp">
     <result name="success" type="freeer">WEB-INF/ts2.ftl</result>
</action>
结果只能显示ts1.ftl里的值,ts2.ftl的值没有显示。这结果也在我的意料之中,因为ts2的Action并没有被调用啊。可是,要怎么样才能自动执行ts2的Action并把结果传到ts2.ftl中去呢?
这肯定有什么方法的,只是我不知道而已……急求,在线求高人解答……

解决方案 »

  1.   

    一次只能调用一个action吧,可以把处理的显示放在一个action中处理,freeer就是显示和内容分离
      

  2.   

    <#include "common_tag.ftl"/>
    <#include "other_tag.ftl"/>
    <#include "action_cms.ftl"/>
    <#include "action_article.ftl"/>
    <#include "action_auxiliary.ftl"/>
    <#include "nonaction_article.ftl"/>
    <#include "action_download.ftl"/>
    在页面上,这里不能直接include ftl文件,这里你可以include action,然后在struts.xml配置action时将它的result配置成freeer,然后指定的文件是对应的ftl页面文件。struts2中有include action的标签,你看一文档中的tags一单节以及freeer tag标签就知道了。还有就是你如果是通过CMS发布内容,前台展现的话,为何不直接将其内容通过freeer静态化了,在前台直接显示生成的html页面不是更好吗?就不需要每次都生成啊,如果是每次都重新生成的,使用freeer与使用jsp有什么区别呢?