高分寻求一个Struts+Oracle的问题的答案,遇到一个很奇怪的异常,高手进来看看!

yt31977100 2007-12-03 02:34:27
下面是LoginAction中的execute()方法中的内容:
LoginForm loginForm = (LoginForm) form;
//判断用户的登录信息是否正确
Login login = new Login();
boolean fal = false;
fal = login.exeLogin(loginForm.getLoginname(),loginForm.getLogpassword());
//exeLogin()这个方法我测试过没问题,能够正常判断
if(fal)
{
List admins = new ArrayList();
Admin admin = new Admin();
admins = admin.getAllInfo();
request.setAttribute("admins",admins);
return mapping.findForward("success");
}
return mapping.findForward("error");
下面是struts-config.xml文件<action-mappings>中的内容:
<action
attribute="LoginForm"
input="/form/login.jsp"
name="LoginForm"
path="/login"
scope="request"
type="com.yourcompany.struts.action.LoginAction" >
<forward name="success" path="/success.jsp" />
<forward name="error" path="/MyJsp.jsp" />
</action>
下面是错误信息:
在LoginAction的exeLogin方法中的if(fal)不成立时候能够正确的执行return mapping.findForward("error");
当if(fal)成立时执行跳转return mapping.findForward("success");会报如下异常:
javax.servlet.ServletException: Cannot create rewrite URL: java.net.MalformedURLException: You must specify exactly one of "forward", "href", "page" or "action"


...全文
133 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yt31977100 2007-12-03
  • 打赏
  • 举报
回复
不会是版本问题吧?
我以前做一直都是用的这阿 不知道今天是怎么了 郁闷!
yt31977100 2007-12-03
  • 打赏
  • 举报
回复
这个是我的LoginAction的代码:

package com.yourcompany.struts.action;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import admin.Admin;
import login.Login;
import com.yourcompany.struts.form.LoginForm;

public class LoginAction extends Action {
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
//判断用户的登录信息是否正确
Login login = new Login();
boolean fal = false;
fal = login.exeLogin(loginForm.getLoginname(),loginForm.getLogpassword());
if(fal)
{
List admins = new ArrayList();
Admin admin = new Admin();
admins = admin.getAllInfo();
request.setAttribute("admins",admins);
return mapping.findForward("okokok");
}
return mapping.findForward("error");
}
}
天外流星 2007-12-03
  • 打赏
  • 举报
回复
会不会跟你的struts版本有问题/

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://struts.apache.org/dtds/struts-config_1_2.dtd">
yt31977100 2007-12-03
  • 打赏
  • 举报
回复
哦 楼上说的这个原因是刚才有人叫我换个字符串试试所以我把 success换成okoko试了一下
但是也还是不可以 刚才复制代码的时候没有改过来 让你误会了
对不起阿!
pengyijpu 2007-12-03
  • 打赏
  • 举报
回复
mapping.findForward("success");

确认这个success在struts-config.xml 里面有?

你的config文件没有看到这个阿!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<data-sources />
<form-beans >
<form-bean name="LoginForm" type="com.yourcompany.struts.form.LoginForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="LoginForm"
input="/form/login.jsp"
name="LoginForm"
path="/login"
scope="request"
type="com.yourcompany.struts.action.LoginAction" >
<forward name="okokok" path="/success.jsp" />
<forward name="error" path="/MyJsp.jsp" />
</action>
</action-mappings>
<message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>

yu__yfchun125 2007-12-03
  • 打赏
  • 举报
回复
能否看看你的**LoginAction.java
yt31977100 2007-12-03
  • 打赏
  • 举报
回复
这个异常会不会和JDBC驱动有关系?
yt31977100 2007-12-03
  • 打赏
  • 举报
回复
还是和刚才一样 一样的异常 郁闷死我了 我把这个工程删除了 重建了一次还是这样的!
天外流星 2007-12-03
  • 打赏
  • 举报
回复

修改成这样试下:

<action path="/login" scope="request" name="LoginForm" type="com.yourcompany.struts.action.LoginAction" >
<forward name="okokok" path="/success.jsp" />
<forward name="error" path="/MyJsp.jsp" />
</action>
yt31977100 2007-12-03
  • 打赏
  • 举报
回复
我的/success.jsp就是放在根目录的 没有在/form下面
全部的struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<data-sources />
<form-beans >
<form-bean name="LoginForm" type="com.yourcompany.struts.form.LoginForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="LoginForm"
input="/form/login.jsp"
name="LoginForm"
path="/login"
scope="request"
type="com.yourcompany.struts.action.LoginAction" >
<forward name="okokok" path="/success.jsp" />
<forward name="error" path="/MyJsp.jsp" />
</action>
</action-mappings>
<message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>
天外流星 2007-12-03
  • 打赏
  • 举报
回复
把你完全的struts-config.xml贴出来.
天外流星 2007-12-03
  • 打赏
  • 举报
回复
是不是
<forward name="success" path="/success.jsp" />
修改成
<forward name="success" path="/form/success.jsp" />
?
yt31977100 2007-12-03
  • 打赏
  • 举报
回复
这个是success的代码
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic"%>
<html>
<head>
<title>员工信息</title>
</head>
<body>
<h1 color="blue">管理员信息</h1>
<table border="1">
<tr align="center">
<TD>编号</TD>
<TD>用户</TD>
<TD>密码</TD>
<TD>更新</TD>
<TD>删除</TD>
</tr>
<logic:iterate id="admin" name="admins">
<tr align="center">
<td><bean:write name="admin" property="id"/></td>
<td><bean:write name="admin" property="loginname"/></td>
<td><bean:write name="admin" property="loginpassword"/></td>
<td>
<html:link>修改</html:link>
</td>
<td>
<html:link>删除</html:link></td>
</tr>
</logic:iterate>
</table>
</body>
</html>
jinxfei 2007-12-03
  • 打赏
  • 举报
回复
贴出success.jsp

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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