freemark例子
Freemarker和Struts2是两个在Java Web开发中广泛使用的开源框架,它们结合使用能够构建出高效、灵活的应用程序。下面将详细讲解这两个技术及其整合应用。 **Freemarker** 是一个模板引擎,用于生成动态内容。它不依赖任何Web容器,而是作为一个独立的库工作。Freemarker的核心理念是将呈现逻辑与业务逻辑分离,使得开发者可以专注于创建模板,而模板设计者则可以专注于页面布局和样式。Freemarker使用模板语言,其中包含变量和控制结构,这些会在运行时与Java对象的数据模型相结合,生成最终的HTML或其他格式的输出。 **Struts2** 是基于MVC(Model-View-Controller)架构模式的Web应用框架,它源自Apache Struts 1,并且吸取了其他框架的优点。Struts2提供了许多特性,如拦截器、插件支持、强大的结果类型和动作配置等,使开发者能够更方便地管理请求处理、数据绑定和异常处理。Struts2还允许开发者通过Action类和值栈来处理业务逻辑和数据,以及通过配置文件或注解来定义URL到Action的映射。 将 **Freemarker** 集成到 **Struts2** 中,可以实现更强大的视图层功能。在Struts2中,Freemarker作为默认的视图技术,通过`struts2-freemarker-plugin`提供支持。配置完成后,开发者可以在Action类中设置属性,这些属性将被传递到Freemarker模板中,供模板渲染使用。例如,一个Action类可能会有如下方法: ```java public class HelloWorldAction { private String message; public String execute() { message = "Hello, World!"; return "success"; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } } ``` 在对应的Freemarker模板`hello.ftl`中,可以这样访问并显示这个属性: ```ftl <!DOCTYPE html> <html> <head> <title>Hello World</title> </head> <body> <h1>${message}</h1> <!-- 这里会显示"Hello, World!" --> </body> </html> ``` Struts2的配置文件(通常为`struts.xml`)中,需要定义Action和结果类型: ```xml <struts> <package name="default" extends="struts-default"> <action name="hello" class="com.example.HelloWorldAction"> <result type="freemarker">/hello.ftl</result> </action> </package> </struts> ``` 在这个例子中,当用户访问`/hello.action`时,Struts2会调用`HelloWorldAction`的`execute`方法,然后将返回的"success"结果映射到`hello.ftl`模板,并将Action中的`message`属性暴露给模板。 **总结:** Freemarker和Struts2的结合使用,可以创建出高效、清晰的MVC结构Web应用。Freemarker作为视图层模板引擎,负责生成动态HTML,而Struts2作为控制器框架,管理请求、数据和业务逻辑。这种分离使得开发和维护工作更加容易,同时也提高了代码的可读性和可扩展性。在实际项目中,你可以通过配置Struts2的拦截器、结果类型和Action,以及利用Freemarker的模板语言特性,实现丰富的功能和复杂的页面布局。
- 1
- yyh8275064542013-04-01一般吧,帮助不是很大
- waw09312012-11-14发布到tomcat下面连个提交action的入口都没有,不好,
- a4718865272013-06-03发布到tomcat下面连个提交action的入口都没有,不好
- 粉丝: 0
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Redis 的 Redis Kafka 连接器(源和接收器).zip
- Flowfield Canvas.zip
- SAP Getway and OData 电子书
- Redis 的 node.js 连接管理器.zip
- 基于Python实现的决策树源代码+使用说明
- Redis 的 JDBC 驱动程序.zip
- 2001-2022年各省农作物总播种面积、粮食作物播种面积数据
- 竹竿检测7-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- 非常好的电源开关设计秘笈30例100%好用.zip
- Redis 模块的 Java 客户端.zip