struts2 <s:action/>的小问题

问题描述

web.xml:<filter-mapping><filter-name>struts2</filter-name><url-pattern>*.action</url-pattern></filter-mapping>jsp页面:<s:action name="index" namespace="/global" executeResult="true"/>就会报错。将web.xml,<url-pattern>*.action</url-pattern>改成<url-pattern>/*</url-pattern>就正常我想不将web.xml改掉,有办法解决吗? 问题补充:Rainbow702 写道

解决方案

你不用改任何东西,你只需要在跳入你的页面的时候不要直接进入,而是通过action跳转进入。
解决方案二:
request -->HomeAction-->redirect或forward-->index.jspindex.jsp页面包含如下:<html> <head></head> <body> <s:action name="header" namespace="" executeResult="true" /> <div> </div> <s:action name="footer" namespace="" executeResult="true" /> </body></html>如上所述,通过HomeAction再重定向或转发到jsp,jsp页面中包含头部与底部,头部与底问没有通过<include>指令,而是通过struts2的 action标签来载入.现在的问题是,在web.xml中<filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>这种拦截,web程序正确执行并显示 jsp页面但如果如下拦截<filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping>web程序就报错,错误指向 <s:action真的很奇怪。
解决方案三:
解决了请一定记得在评论中说清楚,我也开始迷惑了,这个问题怎么就这么纠结,谢谢。
解决方案四:
引用我绝对的没有自以为是,不相信加我qq 我发你项目 就是一个测试的,很小的,我发给你吧 留下qq
解决方案五:
<filter><description>struts配置文件,struts-execute</description><filter-name>struts-execute</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts-execute</filter-name><url-pattern>*.action</url-pattern><dispatcher>FORWARD</dispatcher> <dispatcher>REQUEST</dispatcher> </filter-mapping><filter><description>cleanup</description><filter-name>struts-cleanup</filter-name><filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class></filter><filter-mapping><filter-name>struts-cleanup</filter-name><url-pattern>*.action</url-pattern><dispatcher>FORWARD</dispatcher> <dispatcher>REQUEST</dispatcher> </filter-mapping>这个是我的配置,你可以试试,我也不知道你的问题是怎么处理的。
解决方案六:
引用现在我都怀疑你有没有碰上我说的那种情况。别自以为是 要不咱们打个赌吧
解决方案七:
引用本来默认的就是/*,后来为了servlet有效 我这才改成*.action的。我只能说你即使把servlet配置成/*了,仍然可以对action有用。只是你不会做罢了。下班闪人了,回家疗伤。
解决方案八:
我觉得你假如把配置里面加一句java代码,估计对整个项目都起作用了。
解决方案九:
引用我方正是改成/*的话,servlet就有关系了。无效了。 那你就乱配置去吧。
解决方案十:
我只能说:1,你过滤器没有过滤到你的任何页面,那么你的任何页面想用struts2的标签那是妄想。2,你servlet配置跟action没有半毛钱的关系,除非你真傻到乱配置。
解决方案十一:
引用我知道有问题的。有冲突的。你自己建一个测试一下吗 十分钟啊, web.xml*.action 然后在建立一个servlet 然后你跳转一下。哥哥我做了几百个这样的了,你目前的情况是:servlet和filter完全没弄明白,刚才解释了那么多,你一点都不理解。
解决方案十二:
引用难道还有servlet单独管理配置的吗每个servlet当然都得配置啊。
解决方案十三:
我用的就是:<filter-mapping><filter-name>struts2</filter-name><url-pattern>*.action</url-pattern></filter-mapping> 这样的啊!
解决方案十四:
/action/ 你的action路径/servlet/ 你的servlet路径
解决方案十五:
结贴吧
解决方案:
所以除了编码过滤器 其他都别配置成所有 /*
解决方案:
引用只要直接进入这个页面 ,是不是就得必须改web.mlx里? 貌似没有其他办法啊。
解决方案:
引用恩,是没有错了。 可是这样子很不方便。 我只要把web.xml那里改一下 直接进入这个页面是可以的。 只要直接进入这个页面 ,是不是就得必须改web.mlx里?struts2的配置就得配置action,不是这样不方便,而是得遵循规律。还有就是你要是配置成 /*这样的话,你以后会很麻烦,而且效率很低,比如你要引用个图片什么的都得跑过来过滤,那得过滤多少东西。而且假如要做权限,你以后也会很麻烦。
解决方案:
<s:action name="index" namespace="/global" executeResult="true"/> 类似这样的使用,我在自己的项目里面跑没问题呢!!????
解决方案:
用 / 吧,别用 /*
解决方案:
比如你现在估计是直接进入页面或者redirect a.jsp现在不要这样,你编写一个a.action然后fowward进入a.jsp。那么a.jsp里面的struts2的标签才会起作用。5分钟之内搞定啊 不然哥真的去跳了
解决方案:
哥哥我不蛋定了 拜托你试试我说的方案你就明白啦
解决方案:
那请问你的filter对你的servlet和action会产生影响吗?如果没有,修改你的filter路径,只是让你的servlet或action经过了过滤器,实际上过滤器对它没有产生任何影响,我觉得这样并不会产生什么问题。
解决方案:
引用我都说了。web.xml那一段改掉之后一切没问题。晕 就是因为你/*这样了 所以才拦截了所以 ,所以就可以直接用jsp。而你*.action这个是要拦截.action的,而你直接用jsp当然就没有啦搞不定 我跳黄浦江。
解决方案:
关键这是filter的url-pattern啊
解决方案:
你的 index 这个action 在 struts.xml 中是怎么配置的呢?
解决方案:
我知道了,你进入这个页面的时候必须经过action,不能直接显示这个页面。因为这个页面用了struts2标签,是需要过滤的 我猜想你是直接跳到这个页面而没有经过action来跳。兄弟 就是这个原因,试试就知道。
解决方案:
引用以 / 开头和以 /* 结尾的是用来做路径映射的以前缀 *. 开头的是用来做扩展映射的/ 是用来定义default servlet映射的那struts1的web.xml中为什么可以这么配置呢引用<servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
解决方案:
肯定得改你的web.xml,那就看你想做成什么样了。
解决方案:
因为这个页面用了struts2标签,是需要过滤的 我猜想你是直接跳到这个页面而没有经过action来跳。
解决方案:
研究下servlet规范对于web.xml文件的配置规范 给你推荐一篇文章http://www.360doc.com/content/07/0611/18/18995_552388.shtml对于filter配置那样的url肯定是有问题的,必须以/开头。
解决方案:
我知道了,你进入这个页面的时候必须经过action,不能直接显示这个页面。
解决方案:
以 / 开头和以 /* 结尾的是用来做路径映射的以前缀 *. 开头的是用来做扩展映射的/ 是用来定义default servlet映射的
解决方案:
引用不好意思,还是那错。 前面多了个斜杠哦
解决方案:
改为引用<s:action name="/index.action" namespace="/global" executeResult="true"/> 试试
解决方案:
不会没有加<%@taglib prefix="s" uri="/struts-tags"%>吧
解决方案:
贴错误吧。
解决方案:
这是web.xml文件对于路径的规定,需要以/开头。
解决方案:
<s:action name="/global/index.action" executeResult="true"/>
解决方案:
改成引用<s:action name="index.action" namespace="/global" executeResult="true"/> 试试呢

时间: 2024-08-20 07:53:04

struts2 &amp;lt;s:action/&amp;gt;的小问题的相关文章

Struts2框架,调用action出错404

问题描述 Struts2框架,调用action出错404 struts2配置文件: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.

在struts2中多个action间如何传递ActionError及actionmessage?

问题描述 在struts2中多个action间如何传递ActionError及actionmessage? 我struts.xml的定义: <result name="input" type="redirect-action">adminGLZF!update?adminId=${adminId} </result> 这个问题出现在对某一个管理员(或文章)信息的修改上,如果修改的信息不全或不正确就调用input返回并提示相应的错误信息.如果不

struts2 helloworld跳转action时错误500

问题描述 struts2 helloworld跳转action时错误500 是因为这个action跳转不过去吗 500错误空指针 哪里有问题呢 求大神指教 解决方案 贴出错误代码!这样才能更直观,知道是哪里错了! 解决方案二: 拦截后缀是什么!只访问hello没有后缀拦截么! 解决方案三: 楼主的程序中的struts2的filter的url-pattern是啥啊,就是你web.xml中配置的,最好写成/* ,来表示全部路径均拦截,你的struts2的核心配置文件最好放在src下,看着直观些,如果

struts2 jsp页面给action实体赋值

问题描述 struts2 jsp页面给action实体赋值 实体A中有实体B的List对象 List bLlist 实体B中有实体C的List对象 List cList 我想在jsp中通过A.bList[0].cList[0].属性 A.bList[0].cList[1].属性 给cList赋值~~~ 可是到action中cList的长度一直是0 没赋上值.... 想请教一下可能是什么原因.... 各个属性名都是对的 搜了好几遍..SOS~~~.

struts2 select标签获取action的集合属性值 动态生成下拉菜单 报错

问题描述 1.要获取集合list的Action类public class RoleAction extends ActionSupport {private Role role;public RoleService roleService;public String message;public List list;public static ActionContext ac = null;public String getMessage() {return message;}@Resource

菜鸟好急,关于struts2 页面传值给action的问题。。

问题描述 这里是传值<ahref="useradd.jsp?personId=${p.id}">添加账号</a>在另外一个添加页面需要获得personId,并调用useraddaction.<%intid=Integer.parseInt(request.getParameter("personId"));%>其中id已经正确得到值.关键是下一步<s:formaction="useradd"><

详解在Java的Struts2框架中配置Action的方法_java

在Struts2中Action部分,也就是Controller层采用了低侵入的方式.为什么这么说?这是因为在Struts2中action类并不需要继承任何的基类,或实现任何的接口,更没有与Servlet的API直接耦合.它通常更像一个普通的POJO(通常应该包含一个无参数的execute方法),而且可以在内容定义一系列的方法(无参方法),并可以通过配置的方式,把每一个方法都当作一个独立的action来使用,从而实现代码复用. 例如: package example; public class U

Struts2 超链接跳转Action错误

问题描述 代码如下.index.jsp<ahref="../path/tank.action">传参数</a>struts2.xml<packagename="default"namespace="/path"extends="struts-default"><actionname="tank"class="com.sz.util.UserAction&q

Struts2中请求以*.action做后缀,如何改成*.shtml

问题描述 如题.Struts1 中可以如下设置完成对SHTML请求的处理----------------------------------------------------------------------------------<servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.shtml</url-pattern></servlet-mapping&