问题描述
使用Struts2添加用户,传递过去name等于admin表示用户增加成功转到user_add_success页面,否则转到user_add_error页面但是在index.jsp点击添加用户后出现这是我strtus.xml代码<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><constantname="struts.devMode"value="false"/><packagename="user"namespace="/user"extends="struts-default"><actionname="user"class="com.zs.UserAction"><result>/user_add_success.jsp</result><resultname="error">/user_add_error.jsp</result></action></package></struts>
这是我的UserAction的代码packagecom.zs;importcom.opensymphony.xwork2.ActionSupport;publicclassUserActionextendsActionSupport{privateStringname;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicStringadd(){System.out.println(name);if(name==null||!name.equals("admin")){this.addFieldError("name","nameiserror");returnERROR;}returnSUCCESS;}}
这是我的index代码<%@pagelanguage="java"contentType="text/html;charset=GB18030"pageEncoding="GB18030"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><metahttp-equiv="Content-Type"content="text/html;charset=GB18030"><title>Inserttitlehere</title></head><body>使用addFieldError方法和s:fieldError标签简单处理数据校验<ahref="user/user!add?name=a">添加用户</a></body></html>
跪求各位大神指点
解决方案
解决方案二:
<packagename="user"namespace="/user"extends="struts-default">namespace="/user"开成namespace="/"
解决方案三:
namespace="/user"会将你的请求加上/user你确定你的请求需要加上这个吗这个问题多半是路劲的问题,多试试。
解决方案四:
<ahref="user/user!add?name=a">添加用户</a>这个写的不对吧?应该是<ahref="user/user!add.action?name=a">添加用户</a>
解决方案五:
而且namespace="/user"为什么要这么写呢?应该直接写/
解决方案六:
namespace决定了action的访问路径,默认为"",可以接收所有路径的actionnamespace可以写为/,或者/xxx,或者/xxx/yyy,对应的action访问路径为/index.action,/xxx/index.action,或者/xxx/yyy/index.action所以<ahref="user/user!add?name=a">添加用户</a>应写成<ahref="/user/user!add?name=a">添加用户</a>
解决方案七:
找出问题了,我也不知道为什么这样错的,把<ahref="user/user!add?name=a">里头的"!",但是把!add去掉了就可以了,对于路径问题是没有错的,因为我在jsp的head里已经加载了basePath了