关于struts2页面无法跳转问题

Daisys_min 2014-07-29 10:11:00
初学SSH框架,搭建struts2时,能访问input.jsp但是点击submit后无法完成跳转,并出现HTTP Status 404 - /TestStruts2/test.action
type Status report message /TestStruts2/test.action description The requested resource is not availa的错误。
我的相关代码如下:struts配置文件:
<?xml version="1.0" encoding="GBK"?>

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<!-- 若package加上namespace属性,则jsp页面from的action属性必须加上项目的路径; 若不加上namespace属性,则直接方法名。action即可访问 -->
<package extends="struts-default" name="main">
<action name="login" class="com.xins.action.LoginAction" method="login">
<result name="success">/WEB-INF/result.jsp</result>
</action>
</package>
</struts>



web.xml代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<servlet-name>/*</servlet-name>
</filter-mapping>
</web-app>

login.jsp如下:
</head>
<body>
<form action="login.action" method="post">
账号:<input type="text" name="username" />
密码:<input type="password"name="password" />
<input type="submit" value="submit" />
</form>
</body>
</head>

result.jsp如下:
<body>
账号:${request.username} </br>
密码:${requestScope.password} <br>
</body>

处理器类如下:

package com.xins.action;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {
private static final long serivalVersionUID =1L;
private String username;
private String password;

public String login() throws Exception {
System.out.println("3333333333");
return "success";
}

public String getUsername() {
return username;
}
public void setUsername(String username){
this.username=username;
}

public String getPassword(){
return password;
}
public void setPassword(String password){
this.password=password;
}
}

已经困扰我一个星期了,拜托拜托。




...全文
310 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hrp010 2014-07-30
  • 打赏
  • 举报
回复
/TestStruts2/test.action 你有配这个action吗?我只看到login.action 这个action
jieshao0815 2014-07-30
  • 打赏
  • 举报
回复
<form action="login.action" method="post"> ->直接提交<form action="login" method="post"> 就可以了
放纵的青春 2014-07-30
  • 打赏
  • 举报
回复
HTTP Status 404 - /TestStruts2/test.action 报错的是test.action 但是你的配置文件中并没有这个action 所以你可能是提交错了地址啊 看你贴出来的代码貌似 看不出什么问题 或许是你贴的代码太乱 我没仔细看··
Daisys_min 2014-07-30
  • 打赏
  • 举报
回复
应该是login.action
中琦 2014-07-30
  • 打赏
  • 举报
回复
我有两点疑问: 1. 既然配置了 method = login ;那么就应该在 form 表单里进行 DMI ,要不然没多大意义,不过这也不太可能是错误原因。。 2.貌似跳转到 JSP页面 是默认到 WEB-INF/ 这个跟目录的。我也不知道写不写到底有没有区别。 没试过,你试试把前面那个去掉试试。
残缺的孤独 2014-07-30
  • 打赏
  • 举报
回复
把问题描述清楚了,干扰代码先注释。
nai598455803 2014-07-29
  • 打赏
  • 举报
回复
你的input.jsp  指的是login.jsp ? 看你写的方法都是login ,怎么出现test.action ?
Coder_D 2014-07-29
  • 打赏
  • 举报
回复
web.xml中的拦截器名字写错了...
小灯光环 2014-07-29
  • 打赏
  • 举报
回复
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <servlet-name>/*</servlet-name> </filter-mapping> </web-app>
LOVE-漂泊 2014-07-29
  • 打赏
  • 举报
回复
submit 改成button 然后onclick 触发一个时间 localtion.href=“jsp”
Daisys_min 2014-07-29
  • 打赏
  • 举报
回复
修改过后还是不行啊,这是错在哪里了?

81,122

社区成员

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

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