struts2的路径问题

小沉积 发布于 2010/08/28 16:03
阅读 2K+
收藏 1

struts2的路径问题到底该怎么解决。刚学的新手,求指教。

这是action类的一部分。

 

public class Hello extends ActionSupport {
	public String gotoIndex() {
		System.out.println("gotoIndex");
		return "index";
	}

 

这是struts.xml的相关配置信息。

 

	<package name="jj" namespace="/jj" extends="struts-default">
		<action name="hello" class="action.Hello">
			<result name="index">/WEB-INF/pages/index.jsp</result>
		</action>
	</package>

这是我的JSP文件。

 

	<body>
		<a href="jj/hello!gotoIndex">click here to index.jsp</a>
	</body>

 

 

这是我的项目目录。

 

问题就是这样子:

  1. action类不能命名为XXAction?比方说我不能把Hello改成HelloAction,不然就报错说下标出现Action。

我在web.xml里面改了欢迎页面为/WEB-INF/pages/index.jsp,地址:http://localhost:8080/struts2_3/,

访问正常,而我的JSP页面只有一个链接,如上所示,是一个通过Action跳转到自身JSP文件的链接。

事实上第一次点击的时候是可以跳转到的,这个时候在浏览器的地址是:http://localhost:8080/struts2_3/jj/hello!gotoIndex,

能正确找到JSP文件并映射出页面来。

而当我点击新页面的链接时,却找不到了。它跳转到的地址是:http://localhost:8080/struts2_3/jj/jj/hello!gotoIndex

我想问,应该怎么写才能跳转回本身的页面,实现无限次数的点击呢?

想知道大家一般都用什么解决方案,都是在页面用绝对路径吗?

加载中
0
答复哈
答复哈

用绝对路径呐~

<a href="<%=request.getContextPath()%>/jj/hello!gotoIndex">

0
HostSugar
HostSugar

EL表达式也可以

${pageContext.request.contextPath }   

即是:“/项目名”


0
轻风抚翼
轻风抚翼

这是struts2,不要用这种写法,你可以这样去写
<a href="<s:url action="hello" namespace="/jj"/>">link</a>
也可以这样去写
<s:url var="link" action="hello" namespace="/jj"/>
<s:a href="%{link}">Hello </s:a>

0
s
soken

4喽回答的正确

0
m
magenm

支持4楼

0
返回顶部
顶部