Struts2 freemarker 配置

Struts2 freemarker 配置

Struts2使用FreeMarker作为其黙认的模板技术,因此Strus2对FreeMarker的支持非常良好。在Struts2应用中使用FreeMarker模板技术,只需要在web.xml和Struts.xml文件中进行简单配置就可以使用了。

 一、   须知:  1.下载freemarker.jar的架包 官网下载地址:http://freemarker.org/

2.把freemarker.jar放进\WEB-INF\lib文件下面

3.配置web.xml  在web.xml文件中配置如下即可:


<!-- 配置freemarker启动 -->

<servlet>

<servlet-name>freemarker</servlet-name>

<servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class>

<!-- 配置FreeMarker的ftl文件位置 -->

<init-param>

<param-name>TemplatePath</param-name>

<param-value>/WEB_INF/ftl</param-value>

</init-param>

<!-- 设置是否缓存 -->

<init-param>

<param-name>NoCache</param-name>

<param-value>true</param-value>

</init-param>

<!-- 设置输出格式为UTF-8 -->

<init-param>

<param-name>ContentType</param-name>

<param-value>text/html; charset=UTF-8</param-value>

</init-param>

<!-- 是否和服务器(tomcat)一起启动,0为不,1为是 -->

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>freemarker</servlet-name>

<url-pattern>*.ftl</url-pattern>

</servlet-mapping>

 二、创建一个ftl格式的文件。例如  login.ftl

2.1演示使用指令标签


<form action="ftl_login" method="post">

用户名:<input type="text" name="userName"><br>

<button type="submit">登陆</button>

</form>

<p> userName?? 判断用户名是否为空  空执行else 有值执行if   </P>

<#if userName??>

${userName}

<#else>

${userName!"如果userName是空,就输出!以后的字符"}

</#if>

<br>

<br>

<p>判断arraylist有值时才执行</p>

<#if arraylist??>

<#list arraylist as l>

值:${l!}-------list大小:${l?size}-----------list下标:${l_index}<br>

</#list>

</#if>

<p><井if l_index = 1><井break></井if>循环展示下标等于1的时候,跳出循环</p>

<p><井if l = "bbbbbb"><井break></井if>循环值等于bbbbbb的时候,跳出循环</p>

<#if map??>

<#list map?keys as mymap>

${mymap} -------- ${map[mymap].zcname}--------${map[mymap].zcpwd}<br>

</#list>

</#if >

  三、写Action类处理业务(java代码

      


package com.cn.ftl;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import com.cn.entity.UserBean;

import com.opensymphony.xwork2.ActionSupport;

public class LoginFtlAction extends ActionSupport {

private static final long serialVersionUID = 1L;

private String userName;

private List<String> arraylist;

private Map<String, UserBean> map;

public Map<String, UserBean> getMap() {

return map;

}

public void setMap(Map<String, UserBean> map) {

this.map = map;

}

public List<String> getArraylist() {

return arraylist;

}

public void setArraylist(List<String> arraylist) {

this.arraylist = arraylist;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

//返回我的视图界面

public String loginUI() {

return "loginUI";

}

//处理业务的方法

public String login() {

// 给list集合赋值

arraylist = new ArrayList<String>();

arraylist.add("aaaaaa");

arraylist.add("bbbbbb");

arraylist.add("cccccc");

// 给map集合赋值

UserBean ub = new UserBean();

map = new HashMap<String, UserBean>();

ub.setZcname("tom");

ub.setZcpwd("123");

map.put("tom", ub);

// 给map集合赋值

UserBean ub2 = new UserBean();

ub2.setZcname("jreey");

ub2.setZcpwd("456");

map.put("jreey", ub2);

// 给map集合赋值

UserBean ub3 = new UserBean();

ub3.setZcname("peter");

ub3.setZcpwd("789");

map.put("peter", ub3);

return "login";

}

}

四、在Struts2.xml相应的action中配置<result>

<reslutl>元素的type 属性必须设置为freemarker


<action name="ftl_*" class="com.cn.ftl.LoginFtlAction" method="{1}">

<result name="{1}" type="freemarker">/WEB-INF/ftl/login.ftl</result>

<result name="{1}" type="freemarker">/WEB-INF/ftl/login.ftl</result>

<result name="input" type="freemarker">/WEB-INF/ftl/login.ftl</result>

</action>

五、效果图

六、乐于分享,共同进步。

时间: 2024-10-21 23:14:17

Struts2 freemarker 配置的相关文章

Struts2 XML配置详解

struts官网下载地址:http://struts.apache.org/ 1.    深入Struts2的配置文件 本部分主要介绍struts.xml的常用配置. 1.1.    包配置: Struts2框架中核心组件就是Action.拦截器等,Struts2框架使用包来管理Action和拦截器等.每个包就是多个Action.多个拦截器.多个拦截器引用的集合. 在struts.xml文件中package元素用于定义包配置,每个package元素定义了一个包配置.它的常用属性有: l name

JAVAWEB开发之Struts2详解(一)——Struts2框架介绍与快速入门、流程分析与工具配置以及Struts2的配置以及Action和Result的详细使用

Struts2框架介绍 三大框架:是企业主流JavaEE开发的一套架构.Struts2 + Spring + Hibernate 什么是框架?为什么要学习框架? 框架是实现部分功能的代码(半成品),使用框架简化企业级软件开发. Struts2与MVC? Struts是一款优秀的MVC框架 MVC:是一种思想,是一种模式,将软件分为Model模型.View视图.Controller控制器 JAVAEE软件三层架构:web层(表现层).业务逻辑层.数据持久层(Sun提供javaEE开发规范) Jav

Struts2 Convention Plugin ( struts2 零配置 )

Struts2 Convention Plugin ( struts2 零配置 ) convention-plugin 可以用来实现 struts2 的零配置.零配置的意思并不是说没有配置,而是通过约定大于配置的方式,大量通过约定来调度页面的跳转而使得配置大大减少.考虑到某种因素,这里采用 myeclipse 作为示例 IDE,环境 : JDK 1.6 myeclipse 8.6.1 struts 2.1.8 web.xml <filter>       <filter-name>

freemarker学习 (servlet + freemarker -&gt; Struts2+freemarker -&gt; springMVC+freemarker)

什么是freemarker? freemarker类似于jsp,但不是jsp!怎么说呢?freemarker文件后缀是.ftl,它不像jsp本质是servlet,它将构建模板.解析模板.使用模板分离开来了. 这个回答很好:源于:https://zhidao.baidu.com/question/489425455706898652.html 运行机制就不大一样,jsp是编译成继承自servlet的class文件,运行jsp就是运行一个servlet 而freemarker就是套模板,通过模板+内

Struts2+hibernate 配置环境 架包解析

hibernate 配置需要jar的注释. antlr -2.7.6.jar   //一个语言转换工具,没有此包,hibernate不会执行hql语句,hibernate用它实现hql到sql的转换模板相关操作需要包. asm.jar  //asm是小巧轻便的java字节码操控框架,它能方便地生成和改造java代码.hibernate和spring在底层叠 都用到了 asm. asm-attrs.jar//ASM字节码库,如果使用cglib则必要 ehcache-1.2.jar//如果想使用缓存

Struts2环境配置

1.导入jar包 2.拷贝修改配置文件struts.xml,web.xml 将struts.xml文件拷贝到src目录下,改为如下配置 <? xml version= "1.0" encoding = "UTF-8" ?> <! DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://

Struts2的配置以及详解

1,truts2的作用: 3 1-1 MVC框架: 3 1-2 导入struts.xml配置文件的快捷提示: 3 2,struts2的配置 4 2-1 配置简介 4 2-2配置Struts2的三个步骤 4 1 导入Struts2的jar包 4 2 添加核心配置文件Struts2.xml 4 3 配置过滤器web.xml 5 3,完整的执行步骤: 5 4,创建Action类 6 4-1 Action类的要求: 6 4-2 创建Action类的方法 6 5 从Action向页面传值 6 5-1通过U

FreeMarker配置详解

首先需要添加freemarker.jar到项目,如果项目中有spring或者spirngmvc,需要整合,首先配置freemarkerConfig,代码结构如下:         <!-- 设置freeMarker的配置文件路径 --> <bean id="freemarkerConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean"&g

SSH——Struts2引入配置

MVC架构与传统的WebForm从代码上感觉,主要还是请求被服务器收后怎么个处理流程的问题.对于传统WebForm,客户端访问时候,输入的是页面的地址,请求通过处理管道,然后请求对象被交给页面的后台代码生成类处理(.NET),处理的结果以标签形式被绑定到页面上:或者是访问页面之后,在页面加载中加入AJAX代码,异步获取数据,将数据绑定到页面:这两种方式都是以页面为中心的:出现MVC之后,服务端代码的关注点就不在页面上了.客户端请求的时候,请求的是一个Action,然后action各种处理之后,可