struts2使用通配符时action指定method报错

Routz 2016-05-31 06:39:32
我用的2.5版本

也就是说一使用{1}符号就报错,报错信息:
ERROR Dispatcher Could not find action or result: /stt2_1/loginAction
There is no Action mapped for namespace [/] and action name [loginAction] associated with context path [/stt2_1]. - [unknown location]

表单:
<s:form action="loginAction" method="post">
<s:textfield name="username" key="username" />
<s:textfield name="password" key="password" />
<s:submit key="submit_login" />
</s:form>

配置文件:
<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.enable.DynamicMethodInvocation" value="false" />

<package name="demo1" extends="struts-default">
<action name="*Action" class="XXX.LoginAction" method="{1}" >
<result name="success">/jsp/a1.jsp</result>
<result name="error">/jsp/a2.jsp</result>
</action>
<action name="*">
<result>/jsp/{1}.jsp</result>
</action>
</package>
</struts>

第一个action匹配不上,如果把第一个action里的method属性去掉就又可以匹配了,不知道为什么
...全文
1664 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
像这样直接在action里面加入 allowed-methods标签再写入你要响应的页面就行了,例如我的是loginUser.jsp,registUser.jsp,deleteUser.jsp响应页面
Routz 2017-02-08
  • 打赏
  • 举报
回复
引用 9 楼 douhua95 的回复:
[quote=引用 2 楼 tom9238 的回复:] [quote=引用 1 楼 h89647964 的回复:] 是缺少namespace吧?
不是的,我已经知道错在哪里了。您用的是struts2.5吗[/quote] 我是用2.5的,请问怎么解决,之前版本的确实不会出现这个问题[/quote] 这个可以看我的博客,写的有详细的内容--http://blog.csdn.net/tom9238/article/details/51494005
Routz 2017-02-08
  • 打赏
  • 举报
回复
引用 10 楼 wojiuxiaole 的回复:
在此提出一种可能是由于版本问题使用通配符方式引起的匹配不到action错误。 配置文件中action标签下增加<allowed-methods>login,reg,unique</allowed-methods>。里面的是通配符要匹配的方法。
对,没错,就是这样解决的
Routz 2017-02-08
  • 打赏
  • 举报
回复
引用 7 楼 csdn_yang123 的回复:
楼主是怎么解决的
这个可以看我的博客,写的有详细的内容--http://blog.csdn.net/tom9238/article/details/51494005
虚拟身份 2017-01-05
  • 打赏
  • 举报
回复
在此提出一种可能是由于版本问题使用通配符方式引起的匹配不到action错误。 配置文件中action标签下增加<allowed-methods>login,reg,unique</allowed-methods>。里面的是通配符要匹配的方法。
douhou95 2016-09-18
  • 打赏
  • 举报
回复
引用 2 楼 tom9238 的回复:
[quote=引用 1 楼 h89647964 的回复:] 是缺少namespace吧?
不是的,我已经知道错在哪里了。您用的是struts2.5吗[/quote] 我是用2.5的,请问怎么解决,之前版本的确实不会出现这个问题
Danger肉丝 2016-07-30
  • 打赏
  • 举报
回复
引用 2 楼 tom9238 的回复:
[quote=引用 1 楼 h89647964 的回复:] 是缺少namespace吧?
不是的,我已经知道错在哪里了。您用的是struts2.5吗[/quote] 错在哪了???
csdn_yang123 2016-07-15
  • 打赏
  • 举报
回复
楼主是怎么解决的
kongfanyu 2016-07-06
  • 打赏
  • 举报
回复
<action name="userAction_*" class="com.entity.UserInfoAction" method="{1}"> <result name="userlist">/userlist.jsp</result> <!-- 配置允许调用的方法 --> <allowed-methods> findAll </allowed-methods> </action>
小小脚本 2016-06-06
  • 打赏
  • 举报
回复
抱歉,csdn说我分数不够,不能在技术贴发帖,只能求助各位贴主了: 我本来是用myeclipse开发的ssh项目,之前在myeclipse直接运行项目同步到tomcat 8中,都没有出现问题。 现在我把项目打包war,我想手动将war包放入webapps文件夹下面,可是启动服务器之后便出现了问题: 注:启动服务没报错,是在使用的过程中报的错。 所有的action访问都没有问题,偏偏只有一个action一直报错说: HTTP Status 500 - Unable to instantiate Action, wy.fm.action.FolderAction, defined for 'queryFolders' in namespace '/'Failed to obtain BeanInfo for class [wy.fm.action.FolderAction]; nested exception is java.beans.IntrospectionException: type mismatch between read and write methods 其他功能都没有问题,可以正常使用;只有一个action报错,我十分纳闷为什么只有一个action找不到,其他都找得到! 可是我在myeclipse启动服务却没有任何报错,整个项目正常运行! 注:myeclipse中也是使用tomcat 8
嘴角微微扬 2016-06-05
  • 打赏
  • 举报
回复
你定义了methd属性但是,但是下边没有用; 给你个例子: <package name="user" extends="struts-default" namespace="/"> <action name="user_*" class="com.test.action.UserAction" method="{1}"> <result>/user_{1}.jsp</result> </action> </package> 带红字的解释下,第一个带"*" 表示的是 后面匹配任意字符...这个很容易理解 表示的是第一个"*"的内容...注意,这里的大括号,比如,如果是user_add .那么{1}就是表示 add .. 当然,这里只有一个"*".你可以有两个,甚至三个四个..比如这样写 *_* 这样就是两个"*" .那么我们也可以用{1},{2}来分别的表示他们.
幺客 2016-06-05
  • 打赏
  • 举报
回复
引用 2 楼 tom9238 的回复:
[quote=引用 1 楼 h89647964 的回复:] 是缺少namespace吧?
不是的,我已经知道错在哪里了。您用的是struts2.5吗[/quote] 2.3吧
Routz 2016-06-04
  • 打赏
  • 举报
回复
引用 1 楼 h89647964 的回复:
是缺少namespace吧?
不是的,我已经知道错在哪里了。您用的是struts2.5吗
幺客 2016-06-01
  • 打赏
  • 举报
回复
是缺少namespace吧?
一、准备工作及实例 3 1.解压struts-2.1.6-all.zip 3 2.六个基本包 3 3.初识struts2配置文件 4 (1).web.xml文件 4 (2).struts.xml文件 4 (3).struts.properties(参default.properties) 4 (4)struts-default.xml 4 (5)其它配置文件 4 4.让MyEclipse提示xml信息 4 5.如何使用alt+/提示 4 6.实例 4 7.开启struts2自带的开发模式常量 6 8.vo传参模式 7 9.ModerDriven传参模式(不建议采用) 7 10.为什么要使用struts2代替struts1.x 7 二、struts.xml配置及例程 7 1.配置文件的优先级 7 2.配置形式 8 3.package配置相关 8 4.分工合作include:指定多个配置文件 10 5.tomcat认证访问 10 6.初识拦截器 11 7.Action中的method属性 12 8.使用ForwardAction实现页面屏蔽。 13 8.使用default-Action配置统一访问 14 小结Action 14 9.使用通配符 14 10.使用0配置:ZERO Annotation 15 11.Result配置详解 15 探讨type类型: 16 Type类型值 16 作用说明 16 对应类 16 chain 16 用来处理Action链 16 com.opensymphony.xwork2.ActionChainResult 16 dispatcher 16 用来转向页面,通常处理JSP 16 org.apache.struts2.dispatcher.ServletDispatcherResult 16 redirect 16 重定向到一个URL 16 org.apache.struts2.dispatcher.ServletRedirectResult 16 redirectAction 16 重定向到一个Action 16 org.apache.struts2.dispatcher.ServletActionRedirectResult 16 plainText 16 显示源文件内容,如文件源码 16 org.apache.struts2.dispatcher.PlainTextResult 16 freemarker 16 处理FreeMarker模板 16 org.apache.struts2.views.freemarker.FreemarkerResult 16 httpheader 16 控制特殊http行为的结果类型 16 org.apache.struts2.dispatcher.HttpHeaderResult 16 stream 16 向浏览器发送InputSream对象,通常用来处理文件下载,还可用于返回AJAX数据。 16 org.apache.struts2.dispatcher.StreamResult 16 velocity 16 处理Velocity模板 16 org.apache.struts2.dispatcher.VelocityResult 16 xslt 16 处理XML/XLST模板 16 org.apache.struts2.views.xslt.XSLTResult 16 全局result: 17 动态Result:了解 18 12.异常处理 18 三、在Action获取Scope对象 19 方式一、与Servlet解耦合的非IOC方式 20 方式二、与Servlet解耦合的IOC方式 21 方式三、与Servlet耦合的非IOC方式 21 方式四、与Servlet耦合的IOC方式 22 四、OGNL与ValueStack(VS) 22 1.值栈入门 22 2.OGNL入门 24 3.普通方法访问 24 4.静态方法访问 24 5.默认类Math的访问 24 6.调用普通类的构造方法 25 7.集合对象初步 25 8.集合对象进阶 25 9.N语法top语法 26 10.获取Stack Context中的信息 26 11.总结$ # %的区别 27 12.总结OGNL[重点] 27 五、拦截器 28 1.概述strust2中的拦截器 28 2.自定义拦截器 28 方式一,实现Interceptor接口。 28 方式二、继承AbstractInterceptor抽象类 29 方式三、继承MethodFilterInteceptor类 30 3.使用MethodFilterInterceptor灵活拦截 32 4.使用默认的execAndWait拦截器 33 5.

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧