在struts中使用freemarker

在struts中使用freemarker也很简单,只需要在struts.xml配置result 的type为freemarker就可以了,但要注意下,汉字的在ftl显示中会有乱码问题,技术你在struts.xml配置<constant name="struts.i18n.encoding" value="UTF-8"></constant>你还会发现乱码问题,要解决这个问题,需要修改下tomcat的配置文件,找到tomcat安装目录conf文件夹,然后打开server.xml文件,修改这一行

    <Connector port="8081" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="UTF-8"/>

在8443后面加上URIEncoding="UTF-8"这句,就可以解决乱码问题了,

简单的用个小例子演示下,

1、新建一个struts项目,

2、打开index.jsp文件定义一个form

    <form action="freemarkerAction.action">
    	姓名:<input type="text" name="name"/><br/>
    	年龄:<input type="text" name="age"/><br/>
    	<input type="submit" value="提交"/>
    </form>

3、新建一个freemarkerAction

package com.test.freemarker;

import com.opensymphony.xwork2.ActionSupport;
public class FreemarkerAction extends ActionSupport{
	private String name;
	private String age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
	@Override
	public String execute() throws Exception {
		return ActionSupport.SUCCESS;
	}
}


4、配置下struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<constant name="struts.i18n.encoding" value="UTF-8"></constant>
	<package name="default" extends="struts-default">
		<action name="freemarkerAction" class="com.test.freemarker.FreemarkerAction">
			<result name="success" type="freemarker">/WEB-INF/test.ftl</result>
		</action>
	</package>
</struts>    


5、在WEB-INF目录下建一个test.ftl文件,简单的输入点内容

名字 :${name?default("名字为空")} <br/>
年龄 : ${age?default("年龄为空")}
6、部署到tomcat中,在浏览器中访问就可以看到效果了。

有点遗憾,本来想集成下struts的标签,以前我也没这么用过,试了几次,都没成功,其实freemarker自带的标签功能也很强大,不用struts也没什么,以前我就一直没用,改天有时间,总结下freemarker中常用的标签!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值