`
一眼泉水
  • 浏览: 516598 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

FreeMarker & Struts2配置及实例

阅读更多
Struts2应用中使用FreeMarker模板技术,只需要在struts.xml文件中进行简单配置即可。

1.要在FreeMarker模板使用标签库,只要四步,如下:

(1)解压struts2-core-X.X.X.jar文件,把在META-INF文件夹下面的struts-tags.tld文件复制到WEB-INF文件夹下。

(2)在web.xml文件中启动JSPSupportServlet.代码如下:

<servlet>
  <!-- define a JspSupportServlet Object -->
  <servlet-name>JspSupportServlet</servlet-name>
  <servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
  <!-- setting JspSupportServlet auto start -->
  <load-on-startup>1</load-on-startup>
</servlet>

(3)在FreeMarker模板中使用assign指令导入标签库。代码如下

<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"] /> 注:这里我把struts-tags.tld放在WEB-INF下面

(4)现在我们可以在FreeMarker模板中使用标签了,示例代码如下:

<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"] />
<@s.form action="login">
<@s.textfield name="username" label="username"/>
<@s.submit value="login" />
</@s.form >



2.登录示例:

(1)在WEB-INF文件夹下面建立一个名为ftl的文件夹,其实就是FreeMarker容器,我们把所有的ftl文件都放在里面。

现在我们先在下面建立名字分别为login.ftl,welcome.ftl的文件。



login.ftl代码如下

<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"] />
<html>
<head>
<title>Login Form</title>
</head>
<body>
please input username and password login<br>
<@s.form action="Login.action">
<@s.textfield name="username" label="username"/>
<@s.password name="password" label="password" />
<@s.submit value="submit" />
</@s.form >
</body>
</html>

welcome.ftl代码如下:

<html>
<head>
<title>Success</title>
</haed>
<body>
WelCome,${username},you logined!<br>
<a href="ShowInfo.action">Show Information</a>
</body>
</html>


(2)建立Action



package Action;

import com.struts2.sunny.SunnyAction;

public class LoginAction extends ActionSupport{
private String username;
private String password;
public void setPassword(String password)
{
  this.password=password;
}
public String getPassword()
{
  return this.password;
}

public void setUsername(String username)
{
  this.username=username;
}
public String getUsername()
{
  return this.username;
}
public  String execute()  throws  Exception
  {
  if(username==null)return "error";
  else
  return SUCCESS;
  }
}

(3)配置文件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>
<package  name ="manager"  namespace ="/manager"  extends ="struts-default">
<action name="*">
     <result type="freemarker">/WEB-INF/ftl/{1}.ftl</result>
    </action>
    <action name="Login" class="Action.LoginAction">
     <result name="error" type="freemarker">/WEB-INF/ftl/login.ftl</result>
     <result name="success" type="freemarker">/WEB-INF/ftl/welcome.ftl</result>
    </action>
   </package>
</struts>

(4)web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <filter>
   <filter-name>struts2</filter-name>
   <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  </filter>
  <filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>/*</url-pattern>
  </filter-mapping>
  <servlet>
<servlet-name>JspSupportServlet</servlet-name>
<servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
<load-on-startup>1</load-on-startup>
  </servlet>
  </web-app>
分享到:
评论

相关推荐

    freemarker与struts2整合的实例应用

    适合初学freemarker的人参考的一个简单登录代码。主要是实现freemarker与struts2的整合

    freemarker与struts配置实例和dwr实例

    freemarker与struts搭建的完整实例,只适合刚学freemarker的入门一个示例,里面还加入网上的一个dwr配置实例,仅供参考

    struts2+hibernate+freemarker项目实例

    自己写的一个框架例子,公司也在用,框架是struts2+hibernate+freemarker

    freeMarker整合struts2实例调用模板生成html页面

    freeMarker整合struts2实例调用模板生成html页面,对于初学者肯定有用的

    freemarker+struts完整代码实例

    本案例是freemarker+struts实现的简单例子,适合初学者参考。

    Struts2 和freemarker实例

    Struts2 和freemarker实例 简单STRUTS2的使用,和freeMarker的使用

    freemarker+struts2+ibatis入门学习摘要

    freemarker struts2 ibatis 初级学习摘要 完整实例project,eclipse工程

    struts2.0+freemarker实例.rar

    struts2.0+freemarker实例

    freemarker+struts2.0 实例20090309.rar

    freemarker学习日记, 有myeclipse的web工程实例,源码可以真接运行.

    hibernate3+struts2+spring2+freemarker 主流技术架构 实例

    • 采用hibernate3+struts2+spring2+freemarker主流技术架构 • 懂html就能建站,提供最便利、合理的使用方式 • 强大、灵活的标签,用户自定义显示内容和显示方式 • 在设计上自身预先做了搜索引擎优化,增强对...

    Struts2开发实例总结

    Struts2项目开发总结 (注:Struts2版本:Struts2.1.6,数据库:Oracle9i) 所须架包: commons-logging-1.0.4.jar、commons-fileupload-1.2.1.jar 、freemarker-2.3.13.jar ognl-2.6.11.jar、struts2-core-2.1.6....

    freemarker,struts

    freemarker,struts实例,比较适合入门的程序员使用

    struts2+freemarker 框架

    Struts2整合FreeMarker实例框架初学例子. myeclipse 工程代码. 利用Struts2生成静态页面其实很灵活,很强大,尤其是利用Struts2对Freemarker较好的支持,充分利用Freemarker的模板功能来生成静态页面。 比较简单....

    Struts2实战.pdf

    《Struts 2实战》结合实例介绍了Struts 2框架,主要内容包括Action、Result、Interceptor等框架组件,基于注解的配置选项等新特征,Struts 2插件 FreeMarker,如何从Struts 1和WebWork 2迁移到Struts 2,Ajax标签、...

    Struts2入门教程(全新完整版)

    十二、总结 本教程对struts2的基本知识进行了一些说明,关于struts2的更多详细内容应参看struts2的官方文档及提供的app实例。 下面对struts2的基本执行流程作一简要说明,此流程说明可以结合官方提供的struts2结构图...

    struts2_freemarker_mysql applicaton

    struts2_freemarker_mysql applicaton 这对于已有struts2和webwork基础的来说是一个很不错的学习实例。 带了具体说明及jar包

    JFinal+Maven+FreeMarker入门实例

    JFinal+Maven+FreeMarker入门实例 JFinal这个框架确实不错,受够了Struts 2

    Struts2属性文件详解

    该属性指定加载Struts 2配置文件的配置文件管理器.该属性的默认值是org.apache.Struts2.config.DefaultConfiguration, 这是Struts 2默认的配置文件管理器.如果需要实现自己的配置管理器,开发者则可以实现一个实现...

    Struts2的工作原理和流程

    2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 3 接着FilterDispatcher被调用,...

Global site tag (gtag.js) - Google Analytics