Struts 2入门【struts.xml的DTD验证不起作用的解决办法】

				struts2入门基础

1:环境搭建
①:导jar包
一些jar包:链接:https://pan.baidu.com/s/1OPlz_ekP-LIGmhNSAiMM_w
提取码:isuh
②:配置web.xml

 <filter>  		
 <filter-name>struts</filter-name>  		
 <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
 <!-- Strutsjar包里面的一个类,相当于中央控制器-->  
 </filter>  
 <filter-mapping>  		
 <filter-name>struts</filter-name>  		
 <url-pattern>/*</url-pattern>
 <!-- 过滤所有请求,实际开发中一般过滤.action请求 -->  
 </filter-mapping>

③: struts.xml(核心配置文件)
在根目录下新建资源文件包,放置三个xml文件
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-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" />

	<constant name="struts.i18n.reload" value="true" />

	<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(配置相对应的action,相当于MVC框架下得mvc.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>

<!-- namespace:在内存中划分具体的控件  

name:给package取个名字 -->

	<package name="sy" extends="base" namespace="/sy">

		<action name="helloAction" class="com.zking.struts_base1.web.HelloAction">

				<result name="success">/success.jsp</result>

		</action>

		<action name="calAction_*" class="com.zking.struts_base1.web.CalAction" method="{1}">

				<result name="rs">/rs.jsp</result>

		</action>

	</package>

</struts>

struts.xml的DTD验证不起作用的解决办法(其他dtd约束不起作用,也适用)

1.在项目中新建一个文件夹DTD,然后将struts2.dtd文件复制到此文件夹中

2.然后选择菜单“window—>preferences—>MyEclipse—>Files and Editors—>XML—>XML Catalog

3.点击“ADD”,然后修改弹出窗口中的内容

location:点击选择dtd的文件路径(Workspace)

key Type选择下拉框中的URI即可、key的值是从struts.xml文件复制过来的

在这里插入图片描述

后台子控制器获取jsp所传递的参数的几种形式
1.implements ModelDriven
2.通过get/set方法获取jsp页面的值
3.通过对象导航的方式获取jsp页面的值

后台子控制器向jsp传值的几种形式
1.通过传统的作用域传值(与J2EE容器交互)
就是获取到四大作用域即可


public class ParamAction implements ServletRequestAware, ServletResponseAware{

	private HttpServletResponse resp;

	private HttpServletRequest req;

	private HttpSession session;

	private ServletContext application;

 

 

	@Override

	public void setServletResponse(HttpServletResponse arg0) {

		this.resp=arg0;

	}

 

	@Override

	public void setServletRequest(HttpServletRequest arg0) {

		this.req=arg0;

		this.session = arg0.getSession();

		this.application = arg0.getServletContext();

	}

2.通过值栈进行传值
只需要在子控制器提供set/get方法,即可实现传值的功能(calAction)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值