7
回答
Spring mvc 多视图配置
终于搞明白,存储TCO原来是这样算的>>>   

 视图解析配置:

 <bean id="viewResolver"  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
      <property name="prefix" value="/WEB-INF/view/" />
     <property name="suffix" value=".jsp" />
</bean>

按照上述配置,项目的jsp文件都会统一放在/WEB-INF/view/目录下,这样比较乱,我想把页面按不同模块进行分类放置

1.我的办法是、<property name="prefix" value="/WEB-INF/" />   这么配置,但问题又来了,每次在Controller返回view时必须写成 view/add, view/edit..或 admin/index,amdin/show... 这样一来,感觉不太好,每次都要写页面路径。。。

2.我也按照 视图解析链,通过order控制解析顺序, 把<....view.InternalResourceViewResolver">--order设为0, <....view.UrlBasedViewResolver"> --order设为1,不起作用。又或者把InternalRe..配置两遍,设置order的值,还是不行。

问题: 在进行视图解析时,配置能否像Struts一样,实现action间的跳转。意思就是,通过配置单一视图(只是jsp)的多种解析目录(不会专业术语,请见谅),在解析时,在一级视图解析器下找不到该页面时,自动跳转至二级视图解析器,以此类推。。。(比如Controller一样,只要加上Controller注解,不论在哪个包目录下,只要在配置文件配置了,都是通用的)


举报
zerohh
发帖于5年前 7回/3K+阅
共有7个答案 最后回答: 4年前

API文档原文:

Note: When chaining ViewResolvers, an InternalResourceViewResolver always needs to be last, as it will attempt to resolve any view name, no matter whether the underlying resource actually exists.

InternalResourceViewResolver,如果他找不到资源,会直接返回而不再交给下一个order处理,所以他必须放在最后。可以自己继承InternalResourceViewResolver改掉

引用来自“yaoyaoling”的答案

order  不起作用?是什么意思?通过order 能实现模块划分,但也是有限制的。
意识是在在第一级解析器找不放对应view时,二级解析器不进行解析

引用来自“逝水fox”的答案

API文档原文:

Note: When chaining ViewResolvers, an InternalResourceViewResolver always needs to be last, as it will attempt to resolve any view name, no matter whether the underlying resource actually exists.

InternalResourceViewResolver,如果他找不到资源,会直接返回而不再交给下一个order处理,所以他必须放在最后。可以自己继承InternalResourceViewResolver改掉

<bean id="viewResolver"  class="org.springframework.web.servlet.view. UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/view/"/>
<property name="suffix" value=".jsp" />
<property name="order" value="0" />
</bean>
 
 <bean id="InterviewResolver"  class="org.springframework.web.servlet.view .InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/admin" />
<property name="suffix" value=".jsp" />
<property name="order" value="1" />

</bean>

如上述配置,在一级解析去找不到目录文件时(在view目录下找不到返回的.jsp文件),不会跳转到二级解析器进行解析,直接报404错误了。。。


顶部