2017.3.6——struts2框架(初学笔记)

Struts文件结构   
1、filter
2、Struts.xml

3、action 业务逻辑



struts2   工作流程:

 1.login.jsp-->login.action?name=
2.web.xml action->struts2
3.strus.xml --->action|name=login
class=MyAction
4.MyAction -->execute 
5.return --->ok|fali-->Result
6./result->forward(req,resp) 


Web应用启动时加载并初始化ActionServlet。ActionServlet从struts-config.xml中读取配置信息,把它们存放到各种配置对象中。当ActionServlet接收到一个请求时,流程如下:
1.检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的信息。
2.如果ActionForm实例不存在,就创建一个ActionForm对象,把提交的表单数据保存到ActionForm中。
3.根据配置,决定是否需表单验证,若需要,则调用ActionForm的validate方法。
4.如果ActionForm的validate方法返回null或返回不包含ActionMessage的ActionErrors对象,则表示验证成功。
5.ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发给哪个Action,如果Action不存在则先创建这个实例,然后调用Action的execute方法。
6.Action的execute方法返回一个ActionForward对象,ActionServlet再把请求转发给ActionForward对象指向的JSP组件。
7.ActionForward指向的JSP组件生成动态网页,返回给用户


2017年3月8日14:11:27
  1、Struts2环境搭建!
 #Struts.xml-url-struts- xml- class.method处理方法


method标签,packpage的name通配符!method用{第几个}来表示!
例如  name=“*”  method="{1}"
  
login.action --struts2--struts.xml--
<action name>--* login
class--UserAction
method--(1)
   总结 2017年3月8日15:36:52
1、action name|method,*|{1}
2、action创建 action,support
3、url a/b/c    /a/b  /a


2017年3月14日21:31:54

关于struts中通配符配置!

其实用到method={数字}的时候,相应的前面的action是要出现*通配符来搭配的。比如一个小例子:
<action name="user_*" class="UserAction" method="{1}">
在对应的jsp中:
<form action="user_userLogin2" method="post">
那么struts会将user_userLogin2这个action按照user_*的格式解析,把*号对应位置的字符串取出来,放到method={}这个中括号里替代数字的位置,1就是指第一个*号位置的字符串。
这里看不出数字不同的区别,在:
<action name="*_*" class="com.xy.{1}Action" method="{2}">
中就看得明白了,你提交的action都会按格式分解,比如jsp里是User_add,那么就会变成:
class="com.xy.UserAction" method="{add}"

-------------------------------分割线---------------------------------------

------------------------------2017年8月24日09:30:08---------------------------------

HTTP Status 500 - The Struts dispatcher cannot be found.

(1)JSP页面中没有加入类似下面内容:
<%@ taglib prefix="s" uri="/struts-tags"%>
(2)拦截器不是/*
<filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

-------------------------------分割线---------------------------------------

------------------------------2017年8月28日17:50:47---------------------------------

记:今日花费了一天,犯了一个致命错误,在web.xml 中将filter-name 没有命名为struts2,导致一直报错错误为

报错找不到StrutsPrepareAndExecuteFilter

关于为什么必须写filter-name必须为struts2:目前不知道!

第二点:在写struts.xml没有提示的时候需要添加DTD约束

 
 
 
 




关于为什么必须写filter-name必须为struts2

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值