Struts2入门

本文详细介绍了Struts2框架的配置步骤,包括解决XML配置文件引入DTD不生效的问题,环境搭建流程,如导入jar包、配置web.xml和struts.xml,以及如何在jsp页面与控制器间传递数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、当XML配置文件引入dtd不生效,无提示时的解决方案:

上述操作完成后再选中项目,点击右键,选Validata即可,然后配置文件里就会有提示了

2、环境搭建:先jar导包,然后去web.xml里进行配置:

  <filter>
  	<filter-name>struts</filter-name>
  	<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>struts</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>

注:org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter可通过快捷键Ctrl+shift+t找到相关类,然后复制类名

配置好后写struts.xml(核心配置文件):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
	"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
	<include file="struts-default.xml"></include>
	<include file="struts-base.xml"></include>
	<include file="struts-sy.xml"></include>
</struts>

 注:struts-default.xml文件是Struts2自带的,其他两个文件需要自己写

 struts-base.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
	"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
	<constant name="struts.i18n.encoding" value="UTF-8" /><!-- 默认字符编码 -->
	<constant name="struts.devMode" value="true" /><!-- 开发模式,如果不写则报错不会显示在页面上 -->
	<constant name="struts.configuration.xml.reload" value="true" /><!-- xml配置文件修改后会不会被自动加载 -->
	<constant name="struts.i18n.reload" value="true" /><!-- properties文件修改后会不会被自动加载 -->
	<constant name="struts.enable.DynamicMethodInvocation" value="true" /><!-- 是否支持动态调用方法 -->

	<package name="base" extends="struts-default" abstract="true">
		<global-allowed-methods>regex:.*</global-allowed-methods>
	</package>
</struts>

struts-sy.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
	"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
	<!-- 
		name:给包取名,用于包继承使用
		namespace:虚拟路径,用于jsp页面调用
	 -->
	<package name="sy" extends="base" namespace="/sy"></package>
</struts>

3、jsp与子控制器相互传值的问题

  • 通过传统作用域传值(application、session、request、pagecontext)
  • 通过值栈(ognl)传值:set/get方法
  • 通过对象导航传值
  • 实现ModelDriven接口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值