freemarker-2.3.8.jar
struts2-core-2.0.11.2.jar
我也是初学者,不知道有些地方对不对。乱写。呵呵。
工程 MyEclipse6 目录结构如图。有些东西可以不要的。
先写JSP代码吧。这是前端的。
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>用户登录</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<s:form action="userLogin">
用户名称:<s:textfield name="username"/><br>
用户密码:<s:textfield name="password"/>
<s:submit value="登录" />
</s:form>
</body>
</html>
再就是配置文件了。
先当然写 web.wml 配置文件。
如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<!-- 配置过滤器,来启动struts2 ,它会自动读取你的 STRUTS2的配置文件。 struts.xml -->
<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>
再看struts2 的配置文件。 具说 struts1 与 struts2 配置有些区别,因为本人没有用过 struts1 也有也知道有哪些区别。struts的一些配置说明,如果你不了解,还是要了解一下它的意思。后面我再写下。
见代码。
<?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>
<package name="struts" extends="struts-default">
<action name="userLogin" class="com.test.action.LoginAction" method="userLogin">
<result name="success" type="freemarker">
/WEB-INF/templates/user.ftl
</result>
</action>
</package>
</struts>
type="freemarker" 这个,如果用 freemark ,这个一定要写,不然报错。最初我也是报错,在网上找了好久,才知道自己少了个 type 呵呵。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
上面说到 ftl ,那再就把 ftl 配置文件送上吧。
代码很简单。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>freemark end</title>
</head>
<body>
username:<@s.property value="username"/>
<br/>
password:<@s.property value="password"/>
登录!
</body>
</html>
还有个 struts2环境的配置文件。
freemarker.properties
default_encoding=gbk
也可是utf-8 , 但 gb2312 我就没用过了。
分享到:
相关推荐
在这个例子中,我们创建了一个简单的模板,向其中传入了用户姓名。运行这个程序,Freemarker会生成一个包含问候语的HTML页面。这是Freemarker的基本用法,实际应用中,你可以根据需要构建更复杂的模板和数据模型,以...
FreeMarker是一个纯Java库,不依赖任何外部库,因此在Java环境中非常适合用于生成各种类型的数据报告或文档。 在Java中,FreeMarker与Apache POI库结合可以实现Word文档的生成。Apache POI是一个流行的开源库,专门...
FreeMarker 是一个强大的模板引擎,常用于Java应用中的视图层渲染。在本文中,我们将深入探讨FreeMarker的几个核心概念以及如何使用它们。 1. **Sequence(序列)**: Sequence对应于Java中的列表(List)或数组,...
模板文件`hello.ftl`位于`WebRoot/templates`目录下,这是一个简单的HTML文件,其中包含Freemark的语法。`<h1>`标签展示了`user`变量的值,`<#list>`标签则遍历`userList`并输出每个用户的`userName`和`age`。 为了...
FreeMarker是一个开源的Java库,主要用于生成动态生成的Web页面或其他类型的文本输出,如电子邮件、XML文档等。它的核心功能是解析模板文件,并结合数据模型生成目标输出。在HTML到Word的转换过程中,FreeMarker能够...
数据模型通常是一个Java的Map或者自定义的Java对象。例如,你可以创建一个Map并放入一些键值对,这些键将在模板中作为变量使用: ```java Map, Object> dataModel = new HashMap(); dataModel.put("name", ...
在"Struts2+Freemark 做到一个例子"中,你可能会看到以下的实践步骤: 1. 创建Action类并实现相关业务逻辑。 2. 编写FreeMarker模板文件(通常以`.ftl`为扩展名),定义视图布局和数据展示方式。 3. 在Struts2配置...
Freemarker模板需要一个数据模型,通常由Java对象提供。这些对象的属性可以在模板中访问,如`${user.name}`表示获取`user`对象的`name`属性。 3. 控制结构: Freemarker支持条件语句(如`<#if>`, `<#else>`, `...
在实际应用中,FreeMarker的使用流程通常是这样的:设计者创建一个HTML模板,包含一些特定的FreeMarker指令,然后程序员提供数据模型。当模板和数据模型结合时,FreeMarker会根据模板中的指令和表达式,将数据填充到...
要将FreeMarker模板与JavaMail结合,首先需要创建一个FreeMarker模板文件(如`.ftl`),然后在Java代码中加载该模板,用数据模型填充,最后将生成的字符串作为邮件内容。 4. **设置邮件参数**: 在Java中,需要...
模板定义则是在`.ftl`文件中使用`<#assign...>`创建一个变量,然后将其关联到Java类实例。 3. **使用自定义标签** 在`.ftl`文件中,可以通过`<@myTag...>`调用自定义标签,其中`myTag`是Java类的别名。标签的参数...
一个简单的Freemarker模板可能如下所示: ```html ${title} <h1>Welcome, ${user}! <p>This is an example of Freemarker template. ``` 在这个例子中,`${title}`和`${user}`是变量,它们将在运行时由...
FreeMark是一个强大的、开源的模板引擎,主要用于生成HTML或者其他任何基于文本的格式。它被广泛应用于Web应用开发中,特别是与Java平台结合时,能够帮助开发者将内容与表现分离,提高代码的可维护性和可扩展性。这...
本篇文章将详细解析`freemark小例子仅供参考学习`这个主题,旨在帮助初学者理解FreeMarker的核心概念并提供实践指导。 1. **FreeMarker基础概念** - **模板语言**:FreeMarker使用简单的文本模板语言,允许开发者...
以下是一个简单的示例,展示了如何使用FreeMarker生成PDF文档的主要步骤:\n\n1. 创建`Configuration`实例,设置默认编码为UTF-8。\n2. 创建一个`Map`对象,用于存储要插入到模板中的数据。这些键值对需要与模板中的...
下面是一个简单的示例代码片段,用于演示如何使用Java和FreeMarker生成Word文档: ```java // 导入所需的库 import freemarker.template.Configuration; import freemarker.template.Template; import freemarker....
2. **变量和表达式**:在模板中,`${...}`用来表示一个变量或表达式,它会替换为对应的值。例如,`${user.name}`会输出用户对象的name属性值。 3. **指令**:以`<#...>`包裹的语句是FreeMarker的指令,它们用于控制...
Freemarker是一个用Java编写的模板引擎,它基于模板来生成文本输出。Freemarker通常被用于生成Web页面,但它同样适用于生成任何文本文件,如XML或电子邮件。本学习文档主要涵盖Freemarker的一些基础概念以及常用命令...
例如,一个简单的 FreeMarker 模板可能如下所示: ```html <!DOCTYPE html> <title>Generated Document ${title} ${content} ``` 在这个例子中,`${title}` 和 `${content}` 将分别被 Java 中对应的数据...