struts2和freemarker集成实例

        最近要开始做项目了,项目中可能会用到Struts2和Freemarker集成,所以做了个实例给大家分享一下。

 

        前期的配置web.xml,导入jar包就不给大家介绍了,这些内容做过struts2的朋友的非常熟悉,如果有不会的大家可以找一下帮助文档或者上互联网上搜索一下解决方法。

 

        看过struts2结构图的朋友们都应该知道struts2的展现层不再是像struts1那样单纯的jsp了,它能够集成很多展现层技术,例如今天说的freemarker等等。

 

 

 

        既然上面都说到了freemarker仅仅是一个展现层技术,那么我们自然会想到,freemarker应该和struts2中配置的action标签中的result有关系,其实就是这样的,我们知道struts2的result标签就是匹配跳转路径控制展示层的作用,所以我们利用struts2和freemarker的最近本操作就是配置result标签,把原先的result标签的type变成freemarker,跳转的文件变成freemarker的模板文件即可。配置如下:

 

<struts> 

 <package name="struts"extends="struts-default"> 

<action name="userLogin"class="com.test.action.LoginAction" method="userLogin"> 

       <result name="success" type="freemarker"> 

         /WEB-INF/templates/user.ftl 

       </result> 

     </action> 

   </package> 

</struts>


 

 

       如果我们要是用struts2的注解方式来配置action的话,那么我们就会这样配置:

 

@Action(value = "showadd", results ={ @Result(name = "success", type = "freemarker", location ="/flt/adduser.ftl") })

 

 

 

        总之就是要改result的类型和跳转文件类型即可。

 

        最后我们说一下我们怎么将模板中的变量变成实际的值,这个也是比较简单的,我们这个工作要在action中实现,具体就是我们要将模板中的变量定义到action中,并且生成get和set方法,最后在相应的业务方法中将这个变量赋值,这样struts2就会自动的为我们将值填写到模板中,形成真实的展现页面,最后跳转显示给用户。

 

       Freemarker的模板实例:

 

<html>

<head>

<meta http-equiv="Content-Type" content="text/html;charset=gb2312">

<title>Insert title here</title>

</head>

<body>

       <formmethod="post" action="${formaction}" name="${formname}">

              

              <input id="${adduser_username}" name="${adduser_username}" type="${text}" value="" />

              <input id="${adduser_password}" name="${adduser_password}" type="${text}" value=""/>

              <input id="${adduser_submit}" name="${adduser_submit}" type="${submit}" value="adduser" />

       </form>

</body>

</html>

 

 

      对应的action

 

       private Stringformaction;

 

       private Stringformname;

       

       private Stringadduser_username;

       

       private Stringadduser_password;

       

       private Stringadduser_submit;

       

       private Stringtext;

       

       private Stringsubmit;

 

       public StringgetAdduser_username() {

              returnadduser_username;

       }

 

       publicvoidsetAdduser_username(String adduser_username) {

              this.adduser_username = adduser_username;

       }

 

       public StringgetAdduser_password() {

              returnadduser_password;

       }

 

       publicvoidsetAdduser_password(String adduser_password) {

              this.adduser_password = adduser_password;

       }

 

       public StringgetAdduser_submit() {

              returnadduser_submit;

       }

 

       publicvoid setAdduser_submit(Stringadduser_submit) {

              this.adduser_submit = adduser_submit;

       }

 

       public StringgetText() {

              returntext;

       }

 

       publicvoidsetText(String text) {

              this.text =text;

       }

 

       public StringgetSubmit() {

              returnsubmit;

       }

 

       publicvoidsetSubmit(String submit) {

              this.submit =submit;

       }

 

       public StringgetFormaction() {

              returnformaction;

       }

 

       publicvoidsetFormaction(String formaction) {

              this.formaction =formaction;

       }

 

       public StringgetFormname() {

              returnformname;

       }

 

       publicvoidsetFormname(String formname) {

              this.formname =formname;

       }

 

 

       @Action(value= "showadd", results = { @Result(name ="success", type = "freemarker", location = "/flt/adduser.ftl") })

       public Stringshowadd() throws Exception {

              /*

               * FreeMarkerUtil freeMarkerUtil=newFreeMarkerUtil();

               * Map<String,Object> root=newHashMap<String,Object>(); //为数据模型添加值

               * root.put("formaction","adduser"); root.put("formname", "adduser");

               * 

               * FileWriter out=new FileWriter(newFile("/adduser.ftl"));

               * freeMarkerUtil.printFile("/flt","adduser.ftl",root, out);

               */

              setFormaction("adduser");

              setFormname("adduser");

              setAdduser_password("password");

              setAdduser_submit("adduser_submit");

              setAdduser_username("username");

              setText("text");

              setSubmit("submit");

              return"success";

       }

 

 

 

        这样我们运行就能够看到我们的一个添加页面,需要填入用户名和密码。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值