FreeMarker系列学习笔记(3)——sturts2 result type为 freemarker
2014-05-02 09:46
267 查看
详细解说 请参看:FreeMarker系列学习笔记(2)
为了在FreeMarker模板中使用标签库,可按如下步骤进行
第一步
将系统所需的标签库定义文件(也就是*.tld文件)复制到web应用中,对于struts2系统,则需要将Struts2-core.ja压缩文件中的struts-tags.tld文件释放出来,并复制到了web应用中,具体来说就是复制到WEB-INF目标下。
第二步
在web.xml文件中启动JspSupportServlet,需要在web.xml文件中作如下配置
如
<servlet>
<servlet-name>JspSupportServlet</servlet-name>
<servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
<!--配置JspSupportServlet自启动-->
<load-on-startup>1</load-on-startup>
</servlet>
第三步
在FreeMarker模板中使用assign指令导入标签库。导入标签库的代码如下
<#--定义web-inf/strust-tags.tld文件对应的标签库前缀为s-->
<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"] />
在上面导入的标签库定义文件中,指定了标签库前缀为s,而该前缀对应的标签库定义文件主放置在/WEB-INF/struts-tags.tld路径下
第四步
在FreeMarker模板中增加了标签库定义后,就可以在FreeMarker模板中使用Struts2标签了。在FreeMarker使用标签与在jsp中使用标签略有差别.
下面是FreeMarker模板中使用标签的代码示例
<#--在FreeMarker模板中使用Struts2标签-->
<@s.form action="Login.action">
<@s.textfield name="username" label="用户名"/>
<@s.textfield name="password" label="密码"/>
<@s.submit value="提交"/>
</@s.form>
如果是在jsp中,则使用下述代码
<s:form action="Login.action">
<s:textfield name="username" label="用户名"/>
<s:textfield name="password" label="密码"/>
<s:submit value="提交"/>
</s:form>
index.ftl
struts2.xml
为了在FreeMarker模板中使用标签库,可按如下步骤进行
第一步
将系统所需的标签库定义文件(也就是*.tld文件)复制到web应用中,对于struts2系统,则需要将Struts2-core.ja压缩文件中的struts-tags.tld文件释放出来,并复制到了web应用中,具体来说就是复制到WEB-INF目标下。
第二步
在web.xml文件中启动JspSupportServlet,需要在web.xml文件中作如下配置
如
<servlet>
<servlet-name>JspSupportServlet</servlet-name>
<servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
<!--配置JspSupportServlet自启动-->
<load-on-startup>1</load-on-startup>
</servlet>
第三步
在FreeMarker模板中使用assign指令导入标签库。导入标签库的代码如下
<#--定义web-inf/strust-tags.tld文件对应的标签库前缀为s-->
<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"] />
在上面导入的标签库定义文件中,指定了标签库前缀为s,而该前缀对应的标签库定义文件主放置在/WEB-INF/struts-tags.tld路径下
第四步
在FreeMarker模板中增加了标签库定义后,就可以在FreeMarker模板中使用Struts2标签了。在FreeMarker使用标签与在jsp中使用标签略有差别.
下面是FreeMarker模板中使用标签的代码示例
<#--在FreeMarker模板中使用Struts2标签-->
<@s.form action="Login.action">
<@s.textfield name="username" label="用户名"/>
<@s.textfield name="password" label="密码"/>
<@s.submit value="提交"/>
</@s.form>
如果是在jsp中,则使用下述代码
<s:form action="Login.action">
<s:textfield name="username" label="用户名"/>
<s:textfield name="password" label="密码"/>
<s:submit value="提交"/>
</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>
struts2.xml
<?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>
相关文章推荐
- FreeMarker系列学习笔记
- Lua入门系列----pil学习笔记之Type and Values (2)
- Lua入门系列----pil学习笔记之 Type and Values (1)
- Lua入门系列----pil学习笔记之 Type and Values (1)
- FreeMarker系列学习笔记
- Struts2-学习笔记系列(11)-使用StrutsTypeConverter
- Lua入门系列----pil学习笔记之Type and Values (2)
- Lua入门系列----pil学习笔记之Type and Values (2)
- Mybatis学习笔记(6)--一对一的关联使用resultType输出类型
- Lua入门系列----pil学习笔记之 Type and Values (1)
- struts2学习笔记-2----result的type几个类型
- Lua入门系列----pil学习笔记之Type and Values (2)
- Lua入门系列----pil学习笔记之Type and Values (2)
- Struts2-学习笔记系列(7)-PreResultListener
- FreeMarker系列学习笔记(2)
- Lua入门系列----pil学习笔记之 Type and Values (1)
- FreeMarker系列学习笔记(2)
- Lua入门系列----pil学习笔记之 Type and Values (1)
- FreeMarker系列学习笔记(1)
- Lua入门系列----pil学习笔记之 Type and Values