【struts1.2】我又测试不通了..

苦苦的潜行者 2011-10-22 10:58:34
之前有个问题,也是我问的已经解决了。
http://topic.csdn.net/u/20110922/11/f33791c6-ff7d-4f75-9424-34770c5b01cd.html

现在又出现另一个问题了...我完全按照之前的写法写的,主页能进去但是每次提交就不行了.
上代码

form
<form id="form1" name="login" method="post" action="/LoginAction.do?method=Login">


web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>Login.jsp</welcome-file>
</welcome-file-list>
</web-app>


struts-config.xml
<?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">
<struts-config>
<data-sources></data-sources>
<global-exceptions></global-exceptions>
<global-forwards></global-forwards>
<action-mappings>
<action path="/LoginAction" type="com.dsxx.Action.LoginAction"
parameter="method">
<forward name="loginsuccess" path="/index.jsp"></forward>
<forward name="loginfail" path="/fail.html"></forward>
</action>
</action-mappings>
</struts-config>


LoginAction.java
package com.dsxx.Action;

import javax.servlet.http.*;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class LoginAction extends Action{
public ActionForward Login(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response){
ActionForward forward=new ActionForward();
forward=mapping.findForward("loginfail");
return forward;
}
}


每次点提交就会在这个页面
http://localhost:8080/LoginAction.do?method=Login
然后一片空白,myeclipset的控制台也不报错...
而且我想在LoginAction中用System.out.println("1")也不出东西,看来是没有进入Action啊
求指点啊...
...全文
98 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
苦苦的潜行者 2011-10-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wangxf_8341 的回复:]

http://localhost:8080/LoginAction.do?method=Login
这个路径缺少项目名称吧
试试这个
<form id="form1" name="login" method="post" action="./LoginAction.do?method=Login">
再不行用绝对路径
<form id="form1" name="login" meth……
[/Quote]

周六光测试了5楼,没测试4楼.
现在我测试了,确实是路径缺少项目名称.

我周六没弄出来,瞎搞了一番,把
<form id="form1" name="login" method="post" action="/LoginAction.do?method=Login">
改成
<form id="form1" name="login" method="post" action="LoginAction.do?method=Login">
今天上来不经心的一测,居然可以.

然后我又改成
<form id="form1" name="login" method="post" action="/MyJsp/LoginAction.do?method=Login">
"MyJsp"是我的项目名,测试通过

然后我又改成4楼的
<form id="form1" name="login" method="post" action="./LoginAction.do?method=Login">
测试通过.

有没有帮忙讲解一下这三种写法为什么都可以...




,使.
,.
cyl713 2011-10-23
  • 打赏
  • 举报
回复
2愣子哇
html
提交就写LoginAction.do 要毛method啊
xml中<action path="/LoginAction" type="com.dsxx.Action.LoginAction"
parameter="method">

把parameter="method" 去掉 就行了

至于你说的那个带什么蛋子参数的。其实办法多的是
HttpServletRequest request 用 request.getInputStream就可以取到请求的url 然后截取下?后面,之后做判断
if("Login".equils('method')
{
。。。。。。。。
}
就行了

赶紧给分,骚年

huhk 2011-10-22
  • 打赏
  • 举报
回复
应该使用继承DispatchAction吧 另外楼上的也说了个问题。
火光闪耀 2011-10-22
  • 打赏
  • 举报
回复
LoginAction.java 中一般写的是service方法。
你要是改变方法名,那么就要在<action path="/LoginAction" type="com.dsxx.Action.LoginAction"
parameter="method" method="你的方法名">

我暂时就找到了这点,你先试试。
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wangxf_8341 的回复:]
http://localhost:8080/LoginAction.do?method=Login
这个路径缺少项目名称吧
试试这个
<form id="form1" name="login" method="post" action="./LoginAction.do?method=Login">
再不行用绝对路径
<form id="form1" name="login" metho……
[/Quote]
这个说的很对,在加上继承DispatchAction应该没问题了
  • 打赏
  • 举报
回复
应该使用继承DispatchAction
苦苦的潜行者 2011-10-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 huhk 的回复:]

不用写method="你的方法名" ,
继承DispatchAction 。
写.do时写XXX.do?method="你的方法名"
在继承DispatchAction 的action里写 你的方法实现。
[/Quote]

测试,还是不行.




,使.
,.
huhk 2011-10-22
  • 打赏
  • 举报
回复
不用写method="你的方法名" ,
继承DispatchAction 。
写.do时写XXX.do?method="你的方法名"
在继承DispatchAction 的action里写 你的方法实现。
淡定的峰哥 2011-10-22
  • 打赏
  • 举报
回复
http://localhost:8080/LoginAction.do?method=Login
这个路径缺少项目名称吧
试试这个
<form id="form1" name="login" method="post" action="./LoginAction.do?method=Login">
再不行用绝对路径
<form id="form1" name="login" method="post" action="<%=basePath%>LoginAction.do?method=Login">
苦苦的潜行者 2011-10-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qlong8807 的回复:]

LoginAction.java 中一般写的是service方法。
你要是改变方法名,那么就要在<action path="/LoginAction" type="com.dsxx.Action.LoginAction"
parameter="method" method="你的方法名">

我暂时就找到了这点,你先试试。
[/Quote]

不行啊,<action ....>中不能加method属性啊.加了就有个红X




haoting987

67,513

社区成员

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

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