日期:2014-05-20  浏览次数:20641 次

struct2相对页面的问题
比如这个页面
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>