日期:2014-05-17  浏览次数:20660 次

struts1中path问题(顶者有分)
我有一个登陆页面(login.jsp)在WebRoot目录下的一个文件夹admin_jsp下,我的疑问就是在login.jsp页面中的表单属性action中怎么写?(是写login.do?还是怎么写?)还有,struts-config.xml配置文件中的action标签下的path属性怎么写?(老是报404错误,请高手帮忙)

------解决方案--------------------
路过,混点分,呵呵
------解决方案--------------------
action里面就是写login.do? 但前提是 你的配置文件struts-config.xml中ACTION 节点的name 是login 至于path 就是写你经过action方法后 要跳转的页面地址。
还有一点 你action 类中 是不是只有一个默认方法? 如果有多个方法的话 找表单action里 路径要加上你要提交的方法名. 如 login.do?method=方法名&参数=参数值
------解决方案--------------------
报404是因为地址为找到。
分析下地址,看有没有少工程名,少/等影响的。。。
------解决方案--------------------
在login.jsp页面中的表单属性action值,先退至上一级目录,然后写你配置的action名字
------解决方案--------------------
表单action里面就是写login.do

struts-config.xml配置文件中的action标签下的path=/login
------解决方案--------------------

------解决方案--------------------
<form name="form1" method="post" action="login.do">
***
</form>

struts-config.xml配置文件中的action标签下的path="/login"
<action
attribute="***"
name="***"
parameter="***"
path="/login"
scope="***"
type="***">
</action>
------解决方案--------------------
假设struts-cfg里面
<action path="/login".....>

那么jsp里面表单的action写法就有讲究了:
1)如果你的form用的是struts的html:form,则很简单
<html:form action="/login.do"..... //.do可写可不写


2)如果你用的是普通的html标签的form,那么你的action就要小心了
楼上有人直接写action="login.do"是不行的
因为,配置文件里面的/login是相对于整个WEBROOT的,代表了WebRoot这个路径
应该写成:
action="../login.do"
------解决方案--------------------
action="<%=request.getContextPath()%>/login.do"
------解决方案--------------------
顶,交给高手来解决.