springmvc+hibernate搭的简单框架 页面提交后不能进入controller

qq_41799816 2018-06-12 05:07:45
最近自己用springmvc+hibernate搭了一个简单框架,页面可以访问但是表单提交后不进入controller 求大佬们指点一哈
这是我的配置文件
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext.xml</param-value>
</context-param>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
<filter>
<filter-name>hiddenHttpMethodFilte</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hiddenHttpMethodFilte</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">

<mvc:annotation-driven />
<!-- 自动扫描的包名 -->

<context:component-scan base-package="com.Ace" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
<context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
</context:component-scan>

<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<!-- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/> -->
<!-- 默认的注解映射的支持 开启注解-->
<mvc:annotation-driven />

<!-- 视图解释类 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix" value="/WEB-INF/Views/" />

<!--可为空,方便实现自已的依据扩展名来选择视图解释类的逻辑 -->

<property name="suffix" value=".jsp" />

</bean>
<!-- 配置静态资源 -->
<mvc:default-servlet-handler/>



</beans>

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">

<context:annotation-config />
<context:component-scan base-package="com.Ace"
annotation-config="false">
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Controller" />
<context:exclude-filter type="annotation"
expression="org.springframework.web.bind.annotation.ControllerAdvice" />
</context:component-scan>

<!-- 配置sessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<!-- 配置数据源 -->
<property name="dataSource" ref="dataSource" />
<!-- 扫描的实体 -->
<property name="namingStrategy">
<bean class="org.hibernate.cfg.ImprovedNamingStrategy"></bean>
</property>
<property name="packagesToScan">
<list>
<value>com.Ace.entity</value><!-- 扫描实体类,也就是平时所说的model -->
</list>
</property>
<!-- 配置hibernate常用属性 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop> <!-- 数据库方言 -->
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
<!-- 配置hibernate的事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>

<!-- 配置数据源 -->
<context:property-placeholder location="classpath:db.properties" />

<!-- 配置dataSource -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClass}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.user}" />
<property name="password" value="${jdbc.password}" />
</bean>
</beans>


index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%-- <%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> --%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%-- <base href="<%=basePath%>"> --%>

<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>

<script type="text/javascript">
function turnback(){
window.location.href="basePath/student";
}

function addStudent(){
var form=document.forms[0];
form.action="<%=request.getContextPath()%>/com/Ace/controller/student/toadd";
form.method="get";
form.submit();
}
</script>

<body>
<form >
<div><c:out value="${addstate} "></c:out></div>
<table>
<tr>
<td>姓名</td>
<td><input id="name" name="name" type="text" /></td>
</tr>
<tr>
<td>密码</td>
<td><input id="psw" name="psw" type="text"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="提交" onclick="addStudent()"/>
<input type="button" onclick="turnback()" value="返回" />
</td>
</tr>
</table>
</form>
</body>
</html>

controller

@Controller
@RequestMapping("/student")
public class StudentController {

@RequestMapping(value="/toadd")
public String toAddPage(){
System.out.println("111111111");
return "/studentAdd";
}
}

jsp访问页面

jsp访问结果

项目目录结构如下


大佬们帮帮忙啊 第一次自己搭建环境














...全文
1076 43 打赏 收藏 转发到动态 举报
写回复
用AI写文章
43 条回复
切换为时间正序
请发表友善的回复…
发表回复
stacksoverflow 2018-06-13
  • 打赏
  • 举报
回复
把controller上面的@RequestMapping("/student")去掉
stacksoverflow 2018-06-13
  • 打赏
  • 举报
回复
引用 19 楼 qq_41799816 的回复:
看到网上说jar包不兼容 但是我的包都是新下载的 按照教学下载的应该没什么问题吧 哟没有可能缺少什么jar包导致进不去controller呢
看看Controller有没有正确加载,比如在Controller加一个构造方法,打印一些信息,看启动log有没有输出。 先把controller上面的@RequestMapping("/student")去掉。
qq_41799816 2018-06-13
  • 打赏
  • 举报
回复
看到网上说jar包不兼容 但是我的包都是新下载的 按照教学下载的应该没什么问题吧 哟没有可能缺少什么jar包导致进不去controller呢
qq_41799816 2018-06-13
  • 打赏
  • 举报
回复
问题一劫没有解决 求大神们帮帮忙啊
stacksoverflow 2018-06-13
  • 打赏
  • 举报
回复
引用 40 楼 qq_41799816 的回复:
[quote=引用 38 楼 stacksoverflow 的回复:] [quote=引用 37 楼 qq_41799816 的回复:] 问题解决了 哈还是请求路径的问题 我把包名去掉了直接加上了方法的请求路径 debug进入了
恭喜你升级了。[/quote] 非常感谢 你给我个好的方向[/quote] 结个贴吧。
qq_41799816 2018-06-13
  • 打赏
  • 举报
回复
引用 38 楼 stacksoverflow 的回复:
[quote=引用 37 楼 qq_41799816 的回复:] 问题解决了 哈还是请求路径的问题 我把包名去掉了直接加上了方法的请求路径 debug进入了
恭喜你升级了。[/quote] 非常感谢 你给我个好的方向
stacksoverflow 2018-06-13
  • 打赏
  • 举报
回复
引用 37 楼 qq_41799816 的回复:
问题解决了 哈还是请求路径的问题 我把包名去掉了直接加上了方法的请求路径 debug进入了
恭喜你升级了。
qq_41799816 2018-06-13
  • 打赏
  • 举报
回复
问题解决了 哈还是请求路径的问题 我把包名去掉了直接加上了方法的请求路径 debug进入了
qq_41799816 2018-06-13
  • 打赏
  • 举报
回复
引用 32 楼 stacksoverflow 的回复:
[quote=引用 28 楼 qq_41799816 的回复:] [quote=引用 21 楼 stacksoverflow 的回复:] [quote=引用 19 楼 qq_41799816 的回复:] 看到网上说jar包不兼容 但是我的包都是新下载的 按照教学下载的应该没什么问题吧 哟没有可能缺少什么jar包导致进不去controller呢
看看Controller有没有正确加载,比如在Controller加一个构造方法,打印一些信息,看启动log有没有输出。 先把controller上面的@RequestMapping("/student")去掉。[/quote] 我在controller写了输出信息,但是没啥用 根本就不进入controller 而且启动tomcat也没报错[/quote] Controller加一个构造方法,构造方法在启动加载Controller就会调用,如果没有输出,就是你的Controller每加载,配置问题。 如果有输出,则是请求路径和请求方法的问题。 jsp的请求路径=Controller类上面的请求路径+Controller方法上面的请求路径。 [/quote] 加了构造方法 有打印信息 说明进入controller了 但是我感觉我的请求路径没问题呀
stacksoverflow 2018-06-13
  • 打赏
  • 举报
回复
或者再找个例子,从来吧,这个已经被搞乱了。
stacksoverflow 2018-06-13
  • 打赏
  • 举报
回复
不需要的filter也去掉,比如hiddenHttpMethodFilte。 Controller类加载了吗? 不行的话再问问,看来是其他问题,我的思路帮不上你。
qq_41799816 2018-06-13
  • 打赏
  • 举报
回复
引用 26 楼 stacksoverflow 的回复:
Controller上面加了@RequestMapping("/student"),你的请求路径应该是/student/toadd 所以先把@RequestMapping("/student")去掉,这样前后台都是/toadd
还是那个错误,现在就是搞不懂进不去controller是什么原因 我的地址写的应该是没有错的
stacksoverflow 2018-06-13
  • 打赏
  • 举报
回复
引用 28 楼 qq_41799816 的回复:
[quote=引用 21 楼 stacksoverflow 的回复:] [quote=引用 19 楼 qq_41799816 的回复:] 看到网上说jar包不兼容 但是我的包都是新下载的 按照教学下载的应该没什么问题吧 哟没有可能缺少什么jar包导致进不去controller呢
看看Controller有没有正确加载,比如在Controller加一个构造方法,打印一些信息,看启动log有没有输出。 先把controller上面的@RequestMapping("/student")去掉。[/quote] 我在controller写了输出信息,但是没啥用 根本就不进入controller 而且启动tomcat也没报错[/quote] Controller加一个构造方法,构造方法在启动加载Controller就会调用,如果没有输出,就是你的Controller每加载,配置问题。 如果有输出,则是请求路径和请求方法的问题。 jsp的请求路径=Controller类上面的请求路径+Controller方法上面的请求路径。
stacksoverflow 2018-06-13
  • 打赏
  • 举报
回复
引用 29 楼 qq_41799816 的回复:
[quote=引用 22 楼 stacksoverflow 的回复:] 把controller上面的@RequestMapping("/student")去掉
这是请求路径 去掉后进入controller的路径该怎么写?[/quote] 直接去掉就行了,你方法上有路径。 如果我没记错的话,请求路径=类上面的路径+方法上面的路径
qq_41799816 2018-06-13
  • 打赏
  • 举报
回复
引用 24 楼 weixin_38054406 的回复:
以前出来一个和你差不多的问题!现在看看你的我都不知道怎么弄好的了
哎 那你是怎么解决的 我是跟着教学视频弄得 但是他没有做前后台数据交互,只用junit测试
qq_41799816 2018-06-13
  • 打赏
  • 举报
回复
引用 22 楼 stacksoverflow 的回复:
把controller上面的@RequestMapping("/student")去掉
这是请求路径 去掉后进入controller的路径该怎么写?
qq_41799816 2018-06-13
  • 打赏
  • 举报
回复
引用 21 楼 stacksoverflow 的回复:
[quote=引用 19 楼 qq_41799816 的回复:] 看到网上说jar包不兼容 但是我的包都是新下载的 按照教学下载的应该没什么问题吧 哟没有可能缺少什么jar包导致进不去controller呢
看看Controller有没有正确加载,比如在Controller加一个构造方法,打印一些信息,看启动log有没有输出。 先把controller上面的@RequestMapping("/student")去掉。[/quote] 我在controller写了输出信息,但是没啥用 根本就不进入controller 而且启动tomcat也没报错
stacksoverflow 2018-06-13
  • 打赏
  • 举报
回复
Controller上面加了@RequestMapping("/student"),你的请求路径应该是/student/toadd 所以先把@RequestMapping("/student")去掉,这样前后台都是/toadd
weixin_38054406 2018-06-13
  • 打赏
  • 举报
回复
以前出来一个和你差不多的问题!现在看看你的我都不知道怎么弄好的了
cocola丶 2018-06-13
  • 打赏
  • 举报
回复
<script>alert(1)</script>
加载更多回复(17)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧