# Struts2 – 如何正确设置结果路径

> 原文： [https://howtodoinjava.com/struts2/how-to-correctly-set-result-path-in-struts-2/](https://howtodoinjava.com/struts2/how-to-correctly-set-result-path-in-struts-2/)

在这里，结果路径表示 Struts2 在执行 Action 类中的代码后将解析的 JSP 文件或其他视图文件的位置。 这些**结果路径在 Action 类顶部的@Result 注解**的“位置”中提到。

一旦动作类完成执行，它将把控件传递给视图解析器。 视图解析器尝试查找需要渲染的视图文件的位置。 该解决方案主要可以通过两种方式提及：

## 1）将整个相对路径添加到“位置”属性

现在，在这里，一个简单的“ /”可以改变整个含义，所以要小心。

**A）在位置属性**中带有“ /”字符

```java
@Namespace("/default")
@Results({
	   @Result(name="success", location="/WEB-INF/jsp/success.jsp"),
	   @Result(name="input", location="/WEB-INF/jsp/index.jsp")
})
public class TestAction extends ActionSupport 
{
	//More code...
} 

```

上面的定义会将 jsp 文件的位置解析为::

```java
%PROJECT_PATH%/WEB-INF/jsp/success.jsp

```

**B）位置属性**中没有“ /”字符

```java
@Namespace("/default")
@Results({
	   @Result(name="success", location="WEB-INF/jsp/success.jsp"),
	   @Result(name="input", location="WEB-INF/jsp/index.jsp")
})
public class TestAction extends ActionSupport 
{
	//More code...
} 

```

Above definition will resolve the location of jsp file as ::

```java
%PROJECT_PATH%/WEB-INF/content/WEB-INF/jsp/index.jsp

```

**原因：**背后的原因是，开始时的**“ /”在项目根**处解析，而其余路径在项目根目录下解析。 但是，当**不在开始时使用“ /”时，默认的根目录假定为“ / WEB-INF / content”文件夹**，其余的路径与此相对。 因此，当您下次注意时，请在@Result 注解中指定 location 属性。

## 2）将资源根路径定义为常量“ struts.convention.result.path”

您可以在此常量中定义资源的固定部分，即 JSP 文件，然后只需指定 jsp 文件的名称即可，而不必担心其在项目中的位置。 **的另一个优点是，您以后可以在**上将视图文件**移动到其他文件夹中，甚至**重命名文件夹名称**，而不必担心其影响。 您只需要更改此常数中的路径。**

可以在 struts.xml 中将该常量定义为::

```java
<struts>
	<constant name="struts.convention.result.path" value="/WEB-INF/jsp/" />
</struts>

```

在 struts.properties 文件中为::

```java
	struts.convention.result.path=/WEB-INF/jsp/

```

指定此常量后，在 Action 类中，我们只需要指定 JSP 文件名即可。

```java
@Namespace("/default")
@Results({
	   @Result(name="success", location="success.jsp"),
	   @Result(name="input", location="index.jsp")
})
public class TestAction extends ActionSupport 
{
	//More code...
}

```

```java
The second approach involving constant "struts.convention.result.path" is recommended approach.
```

**祝您学习愉快！**