struts路径书写方式

来源:百度知道 编辑:UC知道 时间:2024/06/05 11:49:41
在jsp中,表单中的action路径是相对于服务器的路径,如在一个test应用中,action="/test/servlet/loginServlet",也可以采用当前应用的当前目录的形式:action="./servlet/loginServlet",其中web.xml中的url-pattern均为"/servlet/loginServlet" 但是在struts中,如果在struts配置文件中,action元素的path为"/login",那么在表单提交的action的url形式为"/login.do",但是测试时发现"login.do"也可以,请问大虾们,这里的action路径形式与jsp中的有什么不同?
在这里有没有相对于服务器的路径和相对于本应用的路径的区分?

在Struts中路径有相对路径、绝对路径。
如果使用了struts标签,那么标签中的html元素使用的路径为相对路径。比如应用为book ,标签中路径<html:link action="bookEdit.do>,那么实际显示的路径为http://.../book/bookEdit.do
也就是structs会自动找到根路径,并把标签中路径改为根路径+标签中路径
在html中,有个base元素,用来说明路径的根路径。如果不用struts标签,可以使用base来确定根路径。
其实最直接的办法是把路径写为绝对路路径,这样就不会出问题。比如路径写为
action="book/bookEdit.do" 那么就肯定不会错了。