我开始学习spring框架,我找不到替代方法来调用控制器方法,我在url中传递querystring varialble,如 - /index.htm?do=login 从我的控制器调用名为“login”的控制器方法
有没有比这更好的方法 哪个网址看起来像 “http://example.com/index.htm”或“http://example.com/index/”
什么是@requestMapping以及如何使用它?
非常感谢!
调度-servlet.xml中
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="index.htm">myController</prop>
</props>
</property>
</bean>
<bean id="myController" class="myController">
<property name="methodNameResolver">
<ref bean="methodNameResolver"/>
</property>
</bean>
<bean id="methodNameResolver"
class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
<property name="paramName">
<value>do</value>
</property>
</bean>
myController的
public class myController extends MultiActionController {
public ModelAndView login(HttpServletRequest request, HttpServletResponse response) {
return new ModelAndView("login");
}
}
在此代码中, 我总是要将查询字符串变量传递给调用匹配控制器方法。 喜欢“http://example.com/index.htm?do=login” 这将从控制器
调用login方法但我不想使用查询字符串变量。我怎样才能做到这一点?
是否可以使用 @RequestMapping
来调用控制器的登录方法,其URL如下所示:http://example.com/login“
我尝试了这个,但它无法正常工作
@RequestMapping("/index.htm")
public ModelAndView index(@RequestParam(value = "do", required = false) String doParam)
{
return new ModelAndView("login");
}
答案 0 :(得分:0)
不确定你的问题是什么,但对于初学者来说:
@RequestMapping("/index.htm")
public void index(@RequestParam(value = "do", required = false) String doParam) {
//...
}
将为所有后续网址调用索引方法:
/index.htm
- doParam
null
方法内index()
/index.htm?do=login
- doParam
等于login
/index.htm?do=logout
- doParam
等于logout