比如这个页面
http://localhost:8080/questionvsanswer/question/2
里面的连接 <a href="<s:url action='register'/>">注册</a>
这个连接产生的是 源码是:<a href="/questionvsanswer/question/register">注册</a>
如何生成/questionvsanswer/register
只对工程的相对链接,而不是对/questionvsanswer/question的相对链接
------解决方案--------------------
<s:a href="/register"></s:a>
这样生成最后的href="[contextPath]/register"
contextPath = questionvsanswer
------解决方案--------------------
Struts2中的相对路径都是相对于你调用的action的上下文的,即使你其实在一个JSP页面中访问一个链接。
所以一般用绝对路径比较好
如果一定用相对路径,那就这样写: <a href="<s:url action='../register'/>">
------解决方案--------------------
如果用绝对路径的话,添加上下面代码就很方便了,只要写项目名称后面的路径即可。
- HTML code
<%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><head><base href="<%=basePath%>" /></head>