繁体   English   中英

春季要求映射和主题

[英]Spring request Mapping and themes

我对Spring 3.0.7请求映射和Spring标准主题实现有疑问。

我的控制器实现如下

@ Controller
@RequestMapping(value="myUrl")
Public MyControllerClass

 @RequestMapping(Method=requestMethod.GET)
 Public myGetHandler (){
 }

因此,可以处理带有http:// myApp / myUrl的URL,一切都很好。

主题通过链接链接激活

 <a href="?theme=mytheme"/>

主题的春季配置是

<bean id="themeChangeInterceptor" class="org.springframework.web.servlet.theme.ThemeChangeInterceptor">
    <property name="paramName" value="theme" />
</bean>

因此,如果我在myUrl页面上,并且单击此链接,则将加载主题,并且还将调用myGetHandler。

然而

如果我在网址中添加参数

 /myUrl?someParm=somevalue 

现在我的控制器可以像以前一样工作了,我可以访问该参数,但是单击主题链接(请参见上方的href),该页面的外观如下所示

/myUrl?theme=myTheme

导致异常,并且页面或主题均不会加载。 我将在稍后发布堆栈跟踪,但它提示控制器(而非主题拦截器)存在问题。

如何映射我的控制器,以便主题和参数化URL起作用? 理想情况下,我想我想更改请求映射以仅处理参数化的url,而没有其他处理?

我尝试将请求映射更改为

   @RequestMapping(value="myUrl",params = "someParam=someValue") 

虽然此方法适用于带有我的参数的链接,但不适用于主题链接。

我的猜测是,如果url是带params的,单击<a href="?theme=mytheme"/> double“?” 在目标网址中,例如/myUrl?someParm=somevalue?theme=mytheme

您应该使用类似c:url或一些javascript的东西来仅用一个构建URL? 和&作为参数定界符

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM