我是Spring MVC的新手,之前可能会问这个问题,但两天后我找不到准确的答案。我几乎绝望了。
My project structure:时 的web.xml
<welcome-file-list>
<welcome-file>HomePage.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
调度-servlet.xml中
<context:component-scan base-package="com.KameraVision.controller" />
<mvc:default-servlet-handler/>
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/jsp</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<bean id="datasource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.postgresql.Driver" />
<property name="url"
value="jdbc:postgresql://localhost:5432/KameraVision"/>
<property name="username" value="postgres"/>
<property name="password" value="md5c4cbdf09352c99860fc9ba841f41af83" />
</bean>
<bean
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello">loginController</prop>
</props>
</property>
</bean>
<bean id="loginController"
class="com.KameraVision.controller.LoginController" />
</beans>
Homepage.jsp
LoginController.java
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
public class LoginController extends AbstractController {
@Override
@RequestMapping(value="hello")
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("login");
model.addObject("message", "Welcome!");
return model;
}
}
答案 0 :(得分:0)
删除INSERT INTO table1(phoneNumber)
SELECT CASE calltype WHEN 1 THEN finallycalledpartyno
WHEN 2 THEN callingpartyno
END
FROM table2
注释,我不相信它与RequestMapping
一起使用,因此可能会导致问题。
另外考虑使用Spring Security,因为这会为您处理任何需要授权的资源的登录重定向。
https://docs.spring.io/spring-security/site/docs/current/guides/html5/
答案 1 :(得分:0)
<强> 1。更改InternalResourceViewResolver
(确保前缀为:/ WEB-INF / jsp /与&#34; /&#34;在jsp末尾)文件夹:
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/jsp/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
控制器
2.1带有@Controller注释的选项1(从xml中删除SimpleUrlHandlerMapping):
@Controller
public class LoginController {
@RequestMapping(value="/hello")
protected ModelAndView myHelloRequest() {
ModelAndView model = new ModelAndView("hello");
model.addObject("message", "Welcome!");
return model;
}
}
2.2选项2:SimpleUrlHandlerMapping
public class LoginController extends AbstractController {
@Override //it is not necesary to define a RequestMapping here because your are using SimpleUrlHandlerMapping
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("hello");
model.addObject("message", "Welcome!");
return model;
}
}
第3。这是非常重要的!!最后确保您的hello.jsp
文件夹
/WEB-INF/jsp/