Ok я получил способ использования нескольких контроллеров, как я хочу, ас-Handlng Контроллеры через диспетчерскую-сервлет
inedx.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<a href="hello/One.html">Say Hello One</a><br>
<a href="hello/Two.html">Say Hello Two</a><br>
<a href="hi/One.html">Say Hi One</a>
</body>
диспетчер-servel.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
etc...
<mvc:annotation-driven/>
<context:component-scan base-package="com.fastek.crm3" />
<mvc:resources mapping="/resources/**" location="/resources/"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
Здесь два контроллера и их методы:
@Controller
@RequestMapping("/hello")
public class HelloController {
@RequestMapping(value="/One")
public ModelAndView sayHello(@ModelAttribute("stdUser") StdUsers stdUser,BindingResult result) {
System.out.println("/////called from one-----------");
String mess = "hello from one";
StdCheckAccessV chk = new StdCheckAccessV();
chk.setDFlag(1);
stdUser.setChkAccessV(chk);
return new ModelAndView(Screens.User, "message", mess);
}
@RequestMapping(value="/Two")
public ModelAndView sayHelloTwo(@ModelAttribute("stdUser") StdUsers stdUser,BindingResult result) {
System.out.println("/////called from two-----------");
String mess = "hello from two";
StdCheckAccessV chk = new StdCheckAccessV();
chk.setDFlag(1);
stdUser.setChkAccessV(chk);
return new ModelAndView(Screens.User, "message", mess);
}
}
и
@Controller
@RequestMapping("/hi")
public class OtherController {
@RequestMapping(value="/One")
public ModelAndView sayHiOne(@ModelAttribute("stdUser") StdUsers stdUser,BindingResult result) {
System.out.println("/////called from hi one-----------");
String mess = "hi from one";
StdCheckAccessV chk = new StdCheckAccessV();
chk.setDFlag(1);
stdUser.setChkAccessV(chk);
return new ModelAndView(Screens.User, "message", mess);
}
}
Все работает нормально, и как я понял из этого примера соответствующий контроллер и способ будет выполняться для соответствующего URL. Как я рожден для весны, я просто хочу знать, что есть способ контролировать вызов Контролера через диспетчер-сервлет? Я имею в виду то, что мне нужно написать в диспетчер-сервлет, чтобы добиться этого. Пожалуйста, помогите.
Что именно вы подразумеваете под _контролированием вызова Контролера через диспетчер-сервлет? _ –
Вы имеете в виду авторизацию? – Zeus
@Sotirios Delimanolis, сэр, как и в текущей ситуации, контроллер и его метод идентифицируются по шаблону url, отправленному на страницу .jsp, сначала он находит соответствующий контроллер **/hello **, а затем связанные методы, т.е. **/sayHello ** или **/sayHelloTwo **. Итак, есть ли способ сделать это в диспетчере-сервлете, я имею в виду, как я могу решить в диспетчерском сервлете, что этот ** url ** должен использовать этот контроллер и что ** url ** должен использовать другой контроллер и их метод? – Viks