关于struts2的传递和接收参数的机制问题求解:越详细越好,加分 10
我在struts.xml配置中package的namespace="/font",有一个action的name="f"class="com.my_page.A",在该类中...
我在struts.xml配置中package的namespace="/font",有一个action的name="f" class="com.my_page.A",在该类中我定义一个属性name,并添加相应的get,set方法。当我访问http://localhost:8080/project1/font/f!add?name=张三 的时候,在该类中打印这个name的时候取到了值,求这其中的机制,越详细越好。
展开
2个回答
展开全部
这涉及到request参数自动赋予Action的一个机制。
这个机制是拦截器来实现的。
当我们从浏览器发起一个请求(提交表单,或者地址栏直接输入地址),根据J2EE规范规定,应该根据Web.xml的配置,依次经过Filter、Servlet。
而Struts2我们已经配置了核心拦截器(Filter),这个拦截器会根据struts.xml的配置,找到该请求地址所对应的Action。
但是最终运行Action之前,要经过一系列的拦截器,其中就有一个拦截器是专门负责将request参数,通过setter方法设置到Action(根据反射的原理)。
有什么不懂的可以再问,通过百度HI也可以。
这个机制是拦截器来实现的。
当我们从浏览器发起一个请求(提交表单,或者地址栏直接输入地址),根据J2EE规范规定,应该根据Web.xml的配置,依次经过Filter、Servlet。
而Struts2我们已经配置了核心拦截器(Filter),这个拦截器会根据struts.xml的配置,找到该请求地址所对应的Action。
但是最终运行Action之前,要经过一系列的拦截器,其中就有一个拦截器是专门负责将request参数,通过setter方法设置到Action(根据反射的原理)。
有什么不懂的可以再问,通过百度HI也可以。
追问
不好意思,忙死了。哦,有点清晰了,那根据J2EE规定一个请求除了经过Filter、Servlet,还要经过哪些东西呢?在web.xml配置文件中的
追答
除此之外,还有Listener,例如request创建、销毁,session创建销毁,服务器创建、销毁。以及各作用域的变量新增、修改、删除时都有相应的Listener
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询