struts2的action里面怎样用velocity模板?想求份代码看看??

爱coding 发布于 2012/04/13 17:10
阅读 1K+
收藏 0

最近想搭建一个struts2整合velocity的环境,在action文件:

public class UserAction extends ActionSupport {
 private List<User>list=new ArrayList<User>();
 public String execute(){
  VelocityEngine ve = new VelocityEngine();
  Template t=null;
  try {
   ve.init();
   t = ve.getTemplate("/src/w/x/servlet/hellovelocity.vm");
  } catch (Exception e) {
   e.printStackTrace();
  }
  VelocityContext context = new VelocityContext();
  list.add(new User("lisi"));
  list.add(new User("wangwu"));
  list.add(new User("maliu"));
  context.put("list",list);
  StringWriter writer = new StringWriter();
  try {
   t.merge(context, writer);
  } catch (ResourceNotFoundException e) {
   e.printStackTrace();
  } catch (Exception e) {
   e.printStackTrace();
  } 
  return "success";
 }
 public List<User> getList() {
  return list;
 }
 public void setList(List<User> list) {
  this.list = list;
 }
}

这样写没有问题,可是我想在请求的时候不每次手动去

Template t=ve.getTemplate("/src/w/x/servlet/hellovelocity.vm");
写这段代码,

struts.xml文件

<struts>
 <constant name="struts.devMode" value="false"/>
 <constant name="struts.configuration.xml.reload" value="true"/>
 <package namespace="/" name="" extends="struts-default">

  <result-type name="velocity" class="org.apache.struts2.VelocityResult"/> 

   <action name="velocity" class="com.sanjiawu.action.VelocityAction">
    <result name="success">HelloVelocity.vm</result>
   </action>
   <action name="user" class="com.sanjiawu.action.UserAction">
    <result name="success" type="velocity">Hello.jsp</result>
   </action>
 </package>
</struts>

因为在struts.xml文件里都配置了各种result成功页面,怎样去统一得到这些页面呢?

不知道有没有说明白,求帮助,在线等。。。。

因为现在在struts.xml文件配置了返回的页面,还要在包下面在定义一下文件。

加载中
0
jonny_zhu
jonny_zhu

干嘛这样写呢?把vm文件单独配置不是方法点嘛,不要写在代码里面,如:<action
   name="test"
   class="com.ape.action.TestAction">
   <result
   type="velocity">/test.vm</result>

返回顶部
顶部