Struts2在动态调用Action的方法时的错误
2015-10-24 15:20
447 查看
在尝试动态调用Action的方法时遇到了奇怪的错误:
type Status report
message /Struts2_Test/WEB-INF/content/login!regist.jsp
description The requested resource is not available.
当时很疑惑,按照这个报错来说,是"login!regist"被当成了一个完整的action的名字,匹配了<action name="*" .../>,所以找不到"login!regist.jsp"才报错的。
错误信息:
HTTP Status 404 - /Struts2_Test/WEB-INF/content/login!regist.jsp
type Status reportmessage /Struts2_Test/WEB-INF/content/login!regist.jsp
description The requested resource is not available.
配置如下:
----------struts.xml----------<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="true" /> <constant name="struts.devMode" value="true" /> <package name="default" namespace="/" extends="struts-default"> <action name="login" class="org.zz.app.action.LoginAction"> <result name="success">/WEB-INF/content/welcome.jsp</result> <result name="error">/WEB-INF/content/error.jsp</result> </action> <action name="*"> <result>/WEB-INF/content/{1}.jsp</result> </action> </package> </struts>
当时很疑惑,按照这个报错来说,是"login!regist"被当成了一个完整的action的名字,匹配了<action name="*" .../>,所以找不到"login!regist.jsp"才报错的。
错误原因:
在struts.xml里将struts.enable.DynamicMethodInvocation设置成了false,就是说不允许动态方法调用,应该将其设置为true,也就是:<constant name="struts.enable.DynamicMethodInvocation" value="true" />这样才能动态调用action的方法,否则会将表单里action的内容原封不动的照搬过去。
相关文章推荐
- Java构建工具:Ant vs Maven vs Gradle
- thinking in Java 之访问权限控制
- IDEA Information:java: javacTask: 源发行版 1.7 需要目标发行版 1.7
- 使用IntelliJ IDEA 14和Maven创建java web项目
- 转 MyBatis+Spring 基于接口编程的原理分析
- struts2后台Action接收jsp页面的值
- java 传统定时器代码
- java synchronized详解
- ubuntu 14.04 安装 JDK
- JDK、JRE、JVM三者间的关系
- java实现二叉树
- java堆分配参数总结
- [转]Java总结篇系列:Java泛型
- 分布式定时任务框架比较,spring batch, tbschedule jobserver
- eclipse上将project项目转web项目
- 在Eclipse中使用git把项目导入到osc@git中
- Eclipse使用EGit管理git@OSC项目
- java关键字
- 简洁Java之道
- Collection探究之ArrayList