Spring Batch Admin主页

时间:2015-04-06 14:18:42

标签: spring spring-batch spring-batch-admin

有没有办法可以更改spring batch admin webapp的主页?

我尝试了各种解决方案而没有任何帮助。困扰我的是RequestMapping(value = { "/", "/home" })HomeController项目中被spring-batch-resources出价,我无法覆盖该映射。

我不知道什么是必要的,我首先尝试将index.jsp页面重新定义为"/myHomePage"而不是默认的"/home"。没有结果。

我尝试将自己的控制器定义为具有相同的RequestMapping(value = "/")。没有结果。模糊映射异常。

我尝试在我自己的控制器中从HomeController扩展和覆盖方法,也没有结果,也有模糊的映射异常。

我甚至添加了

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

没有结果! 我并不关心"/home"映射我只想覆盖"/"映射,或者将其转发到我的页面,或类似的东西。有办法吗?

P.S。我无法更改HomeController实施,因为spring-batch-resources依赖spring-batch-admin-sample ...

2 个答案:

答案 0 :(得分:1)

解释我在评论中给出的答案,@ kap

自从我为此工作已经很长时间了,我现在没有可用的代码,但我记得很清楚:

在资源中的XML文件中的应用程序上下文的一个定义中(抱歉,我忘了哪个)你需要添加类似

的内容
<mvc:interceptor>
   <mvc:mapping path="/"/>
   <bean class="blabla.MyInterceptor" />
</mvc:interceptor>

然后创建实现 HandlerInterceptor 的类 MyInterceptor ,它将重定向请求。您可以使用3种方法来覆盖行为

  • preHandle
  • 的postHandle
  • afterCompletion执

我认为我使用 postHandle 来实现重定向到我的自定义主页的代码。您可以使用Spring拦截器谷歌获取有关重定向请求的教程,以了解如何实现它。

答案 1 :(得分:0)

这对我有用: 将其添加到web.xml

<servlet-mapping>
    <servlet-name>Batch Servlet</servlet-name>
    <url-pattern>/batch/*</url-pattern>
</servlet-mapping>

并在我自己的索引页面上添加此部分

<body>
<div class="pageHeader" id="pageHeader" style="height: 100px;"></div>
<p><a href="<%= request.getContextPath() %>/batch/">Batch job admin</a></p>
</body>