详细解说 请参看:FreeMarker系列学习笔记(2)
为了在FreeMarker模板中使用标签库,可按如下步骤进行
第一步
将系统所需的标签库定义文件(也就是*.tld文件)复制到web应用中,对于struts2系统,则需要将Struts2-core.ja压缩文件中的struts-tags.tld文件释放出来,并复制到了web应用中,具体来说就是复制到WEB-INF目标下。
第二步
在web.xml文件中启动JspSupportServlet,需要在web.xml文件中作如下配置
如
下面是FreeMarker模板中使用标签的代码示例
<#--在FreeMarker模板中使用Struts2标签-->
<@s.form action="Login.action">
</@s.form>
如果是在jsp中,则使用下述代码
<s:form action="Login.action">
</s:form>
index.ftl
<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"] />
<html>
<head>
<title>登录页面</title>
</head>
<body>
请输入用户名和密码来登陆<br>
<@s.form action="login.action">
<label>用户名:</label><@s.textfield name="name"/><br>
<label>密码:</label><@s.textfield name="password"/><br>
<@s.submit value="提交"/>
</@s.form>
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- ftl demo -->
<package name="ftl" extends="struts-default" namespace="/">
<!-- 显示index.ftl -->
<action name="*">
<result type="freemarker">/template/{1}.ftl</result>
</action>
<!-- 欢迎界面 -->
<action name="login" class="com.xueshandugu.struts2.login.action.HelloWorldAction">
<result name="success" type="freemarker">/template/welcome.ftl</result>
</action>
</package>
</struts>
HelloWorldAction.java
package com.xueshandugu.struts2.login.action;
import com.opensymphony.xwork2.ActionContext;
public class HelloWorldAction {
// attribute name
private String name;
// attribute password
private String password;
public String execute() throws Exception {
System.out.println("name: "+ name +"\tpassword: "+ password);
System.out.println("success!............");
ActionContext.getContext().getSession().put("user" , getName());
return "success";
}
/**
* @return
*/
public String getName() {
return name;
}
/**
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* @return
*/
public String getPassword() {
return password;
}
/**
* @param password
*/
public void setPassword(String password) {
this.password = password;
}
}
welcome.ftl
<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"] />
<html>
<head>
<title>成功页面</title>
</head>
<body>
欢迎,${user},您已经登录!<@s.property value="name"/><br>
<a href="getBooks.action">查看作者李刚已出版的图书</a>
</body>
</html>