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>
配置好后写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>
steuts-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与子控制器相互传值的问题:a、通过传统作用域传值(application、session、request、pagecontext)
b、通过值栈(ognl)传值:set/get方法
c、通过对象导航传值
d、实现ModelDriven接口