check ur struts-config.xml
change to ur action "logon.jsp" to "/logon.jsp"
change to ur action "logon.jsp" to "/logon.jsp"
解决方案 »
- jQuery dialog
- JAVA&SQL取值问题
- 请问string类型转换为布尔类型怎么转换
- 最新的struts没了GenericDataSource类,用什么代替的.请教!!!!
- ----------------Eclipse 开发工具使用问题------------------------------
- jsp的小问题,请帮一下忙
- jswdk如何配置
- 招商银行个人银行大众版的附加码如何实现
- 高分求解:(STRUTS)为什么我的ACTIONFORM是NULL?
- 孤陋寡闻!!!!!
- 请教:在JAP中如何获得对象的所有属性、方法和事件及其用法说明。。。。。。。
- 关于jsp处理中文输入。在线等待,急!!!!!!!!
非常感谢你的迅速回复
strut-config.xml配置为
<action path="/logon"
type="com.qsh.qiv.action.LogonAction"
name="logonForm"
scope="request"
validate="true"
input="logon.jsp">
<forward name="success" path="/WEB-INF/jsp/index.jsp" />
<forward name="failure" path="/logon.jsp" />
</action>
另外:
<forward name="success" path="/WEB-INF/jsp/index.jsp" />
这一句是不合适的,通常JSP的服务器禁止通过WEB对WEB-INF的访问
一直没有成功
<forward name="success" path="/WEB-INF/jsp/index.jsp" />经过测试,可以成功访问!方法是在Action中写:mapping.findForward("success");
即可,已经测试通过!
一直没有成功该问题没有解决!!!!!!!!!!!!
一般WEB-INF是放配置文件和LIB的,不是给你放JSP的了。
问题没有解决,我是说我本来strut-config.xml按如上方式配置,
一直没有成功该问题没有解决!!!!!!!!!!!!
validate="true"
这一行删掉就行了
为解决java.lang.IllegalArgumentException: Path logon.jsp does not start with a "/" character..
问题,我才把validate="true"加上
加上validate="true"之前是同样的错误啊
type="com.qsh.qiv.action.LogonAction"
name="logonForm"
scope="request">
<forward name="success" path="/WEB-INF/jsp/index.jsp" />
<forward name="failure" path="/logon.jsp" />
</action>光这个样子也是可以的,不过 validate这个函数就白写了。
另外,我觉得下面这个样子也应该是对的了。除非你在别的地方还有错。
<action path="/logon"
type="com.qsh.qiv.action.LogonAction"
name="logonForm"
scope="request"
validate="true"
input="/logon.jsp">
<forward name="success" path="/WEB-INF/jsp/index.jsp" />
<forward name="failure" path="/logon.jsp" />
</action>
是啊,是啊
那问题还可能出现在哪里呢?
我在LogonAction.java 有如下代码
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
{
ActionErrors errors = new ActionErrors();
LogonForm logonForm = (LogonForm)form;
String username = logonForm.getUsername(); if(!username.equals("root")){
errors.add("org.apache.struts.action.GLOBAL_ERROR", new ActionError("error.username.verify"));
if(!errors.empty()){
saveErrors(request, errors);
return mapping.findForward("failure");
}
}
return mapping.findForward("success");
}
当我在logon.jsp中输入字串(非root)后提交,并且去掉LogonForm.java的validate方法中的语句,可以正确返回LogonAction指定的错误error.username.verify
你出错的提示是一定要用/开头,我觉得就是在INPUT那一段啊。会不会你的struts-config.xml里面有重复的部分啊?我的配置应该肯定是对的了,程序里有很多条这样的东西,一直没有什么错啊。
另外,我不大喜欢用STRUTS里的出错处理机制。
问题解决,就是你说的
input="/logon.jsp"
我写为:
input="logon.jsp"
加上/就好了
之前我一直在反复修改<forward name="failure" path="/logon.jsp" />中的"/"
万分感谢,放分