1.struts.xml配置文件配置模板:
<struts>
<!-- 设置默认的字符集为UTF-8 -->
<constant name="struts.i18n.encoding" value="UTF-8" />
<package name="default" extends="struts-default">
<!-- 对没有对应的action类而需要Struts来控制转发的可以用一下这方法 -->
<action name="login">
<result>/login.jsp </result>
</action>
<action name="*News" class="com.wingmodule.news.action.NewsAction" method="{1}News">
<result name="success" type="freemarker">/WEB-INF/ftl/newsForm.ftl</result>
<result name="list" type="freemarker">/WEB-INF/ftl/newsList.ftl</result>
<result name="input" >/input.jsp</result>
</action>
</package>
</struts>
注意是freemarker 不是freemaker
2.使用freemarker的模板:
<html>
<head>
<title>新闻发布</title>
<link href="style/style.css" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"]>
<#assign contextPath = request.contextPath/>
</head>
<body>
<@s.actionerror/>
可以用
${contextPath}
来获取ContextPath
</body>
</html>
3.Action 中的属性要写getter/setter方法
4.web.xml配置:
<servlet>
<servlet-name>JSPSupportServlet</servlet-name>
<servlet-class>
org.apache.struts2.views.JspSupportServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>freemarker</servlet-name>
<servlet-class>org.apache.struts2.views.freemarker.FreemarkerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>freemarker</servlet-name>
<url-pattern>*.ftl</url-pattern>
</servlet-mapping>
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.wingmodule.common.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<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>*.action</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
分享到:
相关推荐
深入理解MVC思想对于优化Struts2应用至关重要,因为MVC分离了模型、视图和控制器,使得代码更易于管理和测试。 **七、Namespace** Namespace用于区分具有相同Action名称的请求,它决定了Action的访问路径。默认的...
### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC ...掌握 Struts2 的核心概念和技术要点,对于 Web 开发者来说至关重要。
本课程笔记主要涵盖了Struts2的基础概念、核心功能及其工作流程。 首先,Struts2的处理流程是通过一系列的组件协作完成的,包括Filter Dispatcher(过滤器调度器)、Action、Interceptor(拦截器)和Result。当用户...
Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中扮演着重要的角色。本文将深入探讨Struts2的核心概念,包括Namespace、标签、Action以及它们在实际开发中的应用。 一、Namespace ...
Struts2是Java Web开发中一个非常重要的框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了一种结构化的、灵活的、可扩展的方式来构建Web应用程序。本资源“北京圣思园Struts2 全套笔记 课件 详解”...
Struts2是Java Web开发中一个非常重要的框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了一种结构化的、易于维护的Web应用开发方式。本笔记主要涵盖了Struts2的基础知识,包括但不限于配置、...
- **Src目录**:源文件存放地,包含了框架源码,对于想要深入了解struts2内部实现机制的学习者来说非常重要。 **2. 六个基本包** - **struts2-core-2.1.6.jar**:struts2的核心类库,提供了框架的基本功能和API,...
总的来说,Struts2的笔记涵盖了基础配置和核心概念,对于理解如何有效使用这个框架至关重要。理解这些关键点可以帮助开发者更高效地构建和维护Struts2应用程序。此外,Struts2还提供了丰富的插件和拦截器机制,允许...
### Struts2学习笔记2012 #### 一、建立一个Struts2工程 **步骤详解:** 1. **创建Web项目:** - 在MyEclipse中选择“File” > “New” > “Dynamic Web Project”,创建一个新的Web项目。 2. **解压并配置...
笔记中详述了Struts2读取常量的顺序,这一顺序对于理解框架如何加载和优先处理配置至关重要。首先读取`struts-default.xml`,接着是`struts-plugin.xml`、`struts.xml`、`struts.properties`以及`web.xml`。这一顺序...
在Struts2的设计理念中,“约定优于配置”是一个非常重要的原则。这一原则的核心思想是:框架应该为开发者提供一套合理的默认行为和结构,从而减少开发过程中的配置工作量,让开发者能够更加专注于业务逻辑的编写而...
拦截器是Struts2的重要特性,允许在Action执行前后插入自定义逻辑。常见的拦截器有日志记录、权限验证、事务管理等。通过组合多个拦截器,可以实现复杂的业务需求。 6. **插件机制** Struts2支持丰富的插件,如...
Struts2是Java Web开发中一个非常重要的框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了一种结构化、易于维护的Web应用开发方式。本笔记主要涵盖的是黑马程序员2016年推出的Struts2教程的前3天...
同时,理解Struts2的生命周期和请求处理流程也是非常重要的。 通过这个"struts2学习笔记",你将有机会深入学习Struts2框架,掌握其基本用法和高级特性,提升你在Java Web开发领域的技能。记得结合实际项目练习,...
### Struts2培训笔记 #### 一、Struts2简介 **MVC框架**:Struts2是一个基于Java的企业级Web应用开发框架,遵循MVC(Model-View-Controller)设计模式。 - **M(Model)**:业务逻辑处理部分,通常指与数据库交互...