struts2 form标签的action属性

在login.jsp页面中
<s:form id="loginForm" action="login">
<s:textfield name="user.name" label="请输入您的账号"/>
<s:password name="user.password" label="请输入您的密码"/>
<s:submit value="登录" />
</s:form>
会报错: The requested resource (/AlgorithmicTradingSystem/WEB-INF/content/login.action) is not available.
但是不用struts标签却能成功:
<from action="login">
.....
</form>可以正常跳转到login.Action

我的login.jsp在WEB-INF/content/目录下,如果把它直接放在webroot中也能正常,求高手解答

<s:form id="loginForm" action="login">在这个里加上个 namespace=""login所在的目录应该就可以了
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-12
最好用el表达式action="${pageContext.request.contextPath}/WEB-INF/login"
或者 action="../login"
或者 action = "<%=basePath%>WEB-INF/login"
最后一种写法需要声明basePath追问

我加了namespace 属性 已经解决这个问题了 不过还是谢谢你的回答

追答

namespace =""最好别用。这个属性不好。他不管在哪。都能跳转。直到找到那个action为止。
action="${pageContext.request.contextPath}/WEB-INF/login"这个是属于比较规范的写法。而且jsp页面介意不要放到WEB-INF下面去!别人会觉得你很不专业的。

第2个回答  2012-06-12
人才啊,web-inf 下的jsp页面不用 过滤, 直接action="xxx/xxx/xxx.jsp"。 一般jsp 不放在web-inf下。追问

直接action="xxx/xxx/xxx.jsp,那就不是struts了

相似回答