struts2 的问题

pmlxp 2010-05-19 09:00:34
struts2 中跳转的时候报404
路径变为http://localhost:8089/struts2demo20100514/users;jsessionid=68E67AFA8103F3FF6A98CAEA6BA42FA7
...全文
181 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
colin_pxx 2010-05-24
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 pmlxp 的回复:]
如下

Java code

严重: Could not find action or result
There is no Action mapped for namespace / and action name users. - [unknown location]
at com.opensymphony.xwork2.DefaultActionProxy.prepare……
[/Quote]
把namespace的/去掉
huangzhichang 2010-05-19
  • 打赏
  • 举报
回复
肯定要一样的拉,要不他怎么知道接受的是哪个表单提交过来的action啊,那个流程是这样的,表单提交之后来到strut.xml,在strut.xml中找到相应的action,然后去action中找到你指定的方法,然后执行,执行之后返回一个值,在strut.xml中通过那个返回值来选择跳转,这样说够清楚了吧
niaowxf 2010-05-19
  • 打赏
  • 举报
回复
struts2中 <form action="user.action(或者就user)" ></form>这样写法在配置文件中就要写方法名,不写就会执行ACTION中默认的execute方法,
如果用<form action="user.action(或者就user)!save" ></form>在配置文件中就不用指定save方法了,他自己就会去找了
ruturn 时候,直接就return "list";如果要注明是跳转页面,就要在strut配置文件中的这个返回参数加上
<result type="redirectAction" name="list">你的页面</result>
pmlxp 2010-05-19
  • 打赏
  • 举报
回复
不可能一样吧
huangzhichang 2010-05-19
  • 打赏
  • 举报
回复
struts2中,<s:form action="users!save" method="post">这样写就OK了,也就是不用写.action的,然后<action name="users!save" class="com.pml.action.UsersAction" method="XXXX">红色的地方要相同的
pmlxp 2010-05-19
  • 打赏
  • 举报
回复
<a href="users!save.action">添加</a>可以執行
<s:form action="users!save.action" method="post">这样写不能执行
我想知道action=""写什么可以执行
pmlxp 2010-05-19
  • 打赏
  • 举报
回复
现在不报错了
但是不管你怎么操作它跳转到success
也应该是这个

if(count>0){
return ("list"); }
else{ return ("error"); }

打印也沒有
所以根本沒執行這個方法
怎麼會跳轉到success呢
huangzhichang 2010-05-19
  • 打赏
  • 举报
回复
LZ你的这个struts1的习惯还没丢掉吧,怎么strutss2的好东西你都不用呢,比如接受页面的值,你可以model.属性来获得,还有,你的struts.xml的配置那里,只指到了那个action,并没有说明你用了action里的哪个方法,可以在 <action name="users" class="com.pml.action.UsersAction" method="XXXX">添加你用到的方法,还有web.xml里你配置了拦截器没,你的<s:form action="users!save.action" method="post">改成

<s:form action="users!save" method="post">,然后
</result>
<result name="list" type="redirect">/users!save.action</result>
</action>

LZ还是多看看struts2的帮助吧,你的思想都是struts1的,还没有转过struts2
艾瑞儿 2010-05-19
  • 打赏
  • 举报
回复
<result name="list">/users!method=save.action</result>
改成
<result name="list" type="chain">/users!save</result>
这样试试,应该没有问题的
pmlxp 2010-05-19
  • 打赏
  • 举报
回复
如下

严重: Could not find action or result
There is no Action mapped for namespace / and action name users. - [unknown location]
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:186)
at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:494)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.pml.encoding.EncodingFilter.doFilter(EncodingFilter.java:36)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
at java.lang.Thread.run(Thread.java:619)


pmlxp 2010-05-19
  • 打赏
  • 举报
回复
7楼的大哥
那 <s:form action="users!save.action" method="post">
也要改为users_save
好像也报错耶500
colin_pxx 2010-05-19
  • 打赏
  • 举报
回复
<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="users" class="com.pml.action.UsersAction">
<result name="success">
/success.jsp
</result>
<result name="error">
/error.jsp
</result>
<result name="list">/users!method=save.action</result>
</action>
</package>
</struts>
这里action name="users"改成name="users_"
<s:form action="users!save.action" method="post">
改成action="users_save"这里是指name为"users_"对应的"UsersAction"对应的save方法
不是你的action
redlotus_lyn 2010-05-19
  • 打赏
  • 举报
回复
1>.设置struts.enable.DynamicMethodInvocation = true

2>.<result name="list">/users!save.action</result>
pmlxp 2010-05-19
  • 打赏
  • 举报
回复
还差一个action
UsersAction


package com.pml.action;


import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts2.interceptor.ServletRequestAware;

import com.opensymphony.xwork2.ActionSupport;
import com.pml.biz.UsersBiz;
import com.pml.entity.Users;

public class UsersAction extends ActionSupport implements ServletRequestAware{
private int id;
private String usersName;
private String usersPassword;
private int relation;
private HttpServletRequest request = null;

public int getRelation() {
return relation;
}

public void setRelation(int relation) {
this.relation = relation;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getUsersName() {
return usersName;
}

public void setUsersName(String usersName) {
this.usersName = usersName;
}

public String getUsersPassword() {
return usersPassword;
}

public void setUsersPassword(String usersPassword) {
this.usersPassword = usersPassword;
}

public String select() throws Exception {
UsersBiz ub=new UsersBiz();
List list=ub.selectAll();
request.setAttribute("users", list);
return null;
}

public String check() throws Exception {
if ("pml".equals(this.getUsersName())) {
return ("success");
} else {
return ("error");
}
}

public String save() throws Exception {
System.out.println("/////////////////////////////////////////////////////////////");
Users user = new Users();
UsersBiz ub=new UsersBiz();
user.setUsersName(request.getParameter("usersName"));
System.out.print(request.getParameter("usersName"));
user.setUsersPassword(request.getParameter("usersPassword"));
int count=ub.insert(user);
if(count>0){
return ("list");
}
else{
return ("error");
}
}

public void setServletRequest(HttpServletRequest request) {
this.request=request;
}

}


pmlxp 2010-05-19
  • 打赏
  • 举报
回复
我也知道是配置
帮我看看
这是struts.xml


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="users" class="com.pml.action.UsersAction">
<result name="success">
/success.jsp
</result>
<result name="error">
/error.jsp
</result>
<result name="list">/users!method=save.action</result>
</action>
</package>
</struts>

这是页面


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="GBK"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<s:form action="users!save.action" method="post">
<s:textfield name="usersName" label="User Name" />
<s:password name="usersPassword" label="Password" />
<s:submit value="添加" />
</s:form>
</body>
</html>


每当我添加的时候就是404
路径就变了
我昨天刚开始学
请高人帮帮忙
木子0204 2010-05-19
  • 打赏
  • 举报
回复
一定你配置错误吧!!!
龙四 2010-05-19
  • 打赏
  • 举报
回复
404 路径错误了,经典错误码
redlotus_lyn 2010-05-19
  • 打赏
  • 举报
回复
http://localhost:8089/struts2demo20100514/users.action;jsessionid=68E67AFA8103F3FF6A98CAEA6BA42FA7

67,550

社区成员

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

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