日期:2014-05-17  浏览次数:20723 次

想问一下实际SSH项目中freemarker的使用
初学了freemarker,不知道实际的SSH项目中,具体是怎么使用的。我想了一个流程,不知道是不是这样的,请大侠指教,谢谢!举例,要生成 show.html,我想的流程如下:


第一步:这个页面事先建好 form.html ,首先会运行这个页面提交username数据 
<form action="formaction" method="post">
<input type=text name="username">
<input type="submit" value="submit">
</form>

第二步,建立好模板文件show.ftl
<html><body>${username}</body></html>


第三步:建立formaction对应的处理类FormAction.java,主要源码如下:
public class FormAction{
  private String username; // 省略set和get方法
  public String execute(){
    Map root = new Map();
    root.put("username",username);
    Writer out = new OutputStreamWriter(new OutputStream(new File("show.html"))); 
    
    //注:省略获取freemarker环境变量configuration的代码
    Template template = configuration.getTemplate("show.ftl")
    //就在这一步生成静态文件show.html,合适吗?     
    template.process(root,out);

    return "success";
  }
}

第四步,struts.xml中设置好对应关系
<action name="formaction" class="FormAction">
<result>show.html</result>
</action> 


这样通过在表单页面form.html中,填写username的数据,然后提交给action处理,在action中生成静态文件,再返回这个生成的静态文件。实际SSH项目中是这样处理的吗?拜谢!!!

------解决方案--------------------
是这样处理的
------解决方案--------------------
有两种做法,1、你直接跳转freemarker的ftl模板,2、生成静态页面去访问。
------解决方案--------------------
return "success";  
有一个配置文件可以配置跳转到那个模版中(据说可以是注解等等。)

你这样写不是觉得很累么??
freemarker 在开发 中 是不可见的。
------解决方案--------------------
struts中也是在freemarker中的基础上转换的,所谓的struts标签,C标签也是
------解决方案--------------------
引用:
Quote: 引用:

return "success";  
有一个配置文件可以配置跳转到那个模版中(据说可以是注解等等。)

你这样写不是觉得很累么??
freemarker 在开发 中 是不可见的。
在开发中不可见是什么意思


struts2 直接封装好了。
------解决方案--------------------
jsp如何生成静态页面呢
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

return "success";  
有一个配置文件可以配置跳转到那通过个模版中(据说可以是注解等等。)

你这样写不是觉得很累么??
freemarker 在开发 中 是不可见的。
在开发中不可见是什么意思


struts2 直接封装好了。



struts2可以直接跳转到freemarker模板中,这个我是知道的。但是我不理解有什么用处。难道是在struts2的action 控制类中获取数据,然后再将数据给freemarker模板?可是给模板了数据有什么用啊,模板文件又不能直接在浏览器中读取啊!不还得去通过IO生成静态网页啊


你就把freemarker当成jsp吧