【发布时间】:2016-12-16 09:30:56
【问题描述】:
我正在使用
执行带有保存和更新操作的 emp CRUD 操作
Spring MVC,使用 SimpleUrlHandlerMapping。但是当我运行该项目时,它是
抛出一个名为 /WEB-INF/MAC-servlet.xml 的错误未找到。我创建了
以上 WEB-INF 本身中的 xml 文件。请解决这个问题。我添加了所有春天
JARS 和 MySQL 连接器。我正在使用 MySQL 数据库来执行
操作。这是我项目的以下代码
empsave.jsp
_______________
<h1>Employee Save Form</h1>
<form action="./empsave.ds">
<pre>
Name: <input type="text" name="name"/>
Email: <input type="text" name="email"/>
Address: <input rows="5" cols="15" name="address"/>
<input type="submit" value="save"/>
</pre>
</form>
web.xml
_______________
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID"
version="3.1">
<display-name>EmpCRUDOperations1</display-name>
<welcome-file-list>
<welcome-file>empsave.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>MAC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MAC</servlet-name>
<url-pattern>*.ds</url-pattern>
</servlet-mapping>
</web-app>
empupdate.jsp
_________________
<h1>Employee Update Form</h1>
<form action="./empsave.ds">
<pre>
ID: <input type="text" name="ID"/>
Name: <input type="text" name="name"/>
Email: <input type="text" name="email"/>
Address: <input rows="5" cols="15" name="address"/>
<input type="submit" value="save"/>
</pre>
</form>
EmpCRUDController.java
_______________________
package controller;
import java.sql.DriverManager;
import java.sql.ResultSet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.Statement;
public class EmpCRUDController extends MultiActionController {
public ModelAndView empsave(HttpServletRequest req, HttpServletResponse
res) throws Exception {
String name=req.getParameter("name");
String email=req.getParameter("email");
String address=req.getParameter("address");
Statement stmt=null;
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection con= DriverManager.getConnection
("jdbc:mysql://localhost/loginuser", "root", "root");
ResultSet rs=con.createStatement().executeQuery("select max(id)
from emp");
int maxid=0;
if(rs.next()){
maxid=rs.getInt(1);
maxid++;
}
PreparedStatement ps=(PreparedStatement) con.prepareStatement
("insert into emp values(?,?,?,?)");
ps.setInt(1,maxid);
ps.setString(2, name);
ps.setString(3, email);
ps.setString(4, address);
int i=ps.executeUpdate();
con.close();
ModelAndView mav=null;
if(i!=0)
mav=new ModelAndView("success");
else
mav=new ModelAndView("fail");
return mav;
}
public ModelAndView empupdate(HttpServletRequest req,
HttpServletResponse res) throws Exception {
int id=Integer.parseInt("id");
String name=req.getParameter("name");
String email=req.getParameter("email");
String address=req.getParameter("address");
Class.forName("com.mysql.jdbc.Driver");
Connection con=(Connection) DriverManager.getConnection
("jdbc:mysql://localhost/loginuser", "root", "root");
PreparedStatement ps=(PreparedStatement) con.prepareStatement
("update emp set name=?,email=?,address=?");
ps.setString(1, name);
ps.setString(2, email);
ps.setString(3, address);
int i=ps.executeUpdate();
con.close();
ModelAndView mav=null;
if(i!=0)
mav=new ModelAndView("success");
else
mav=new ModelAndView("fail");
return mav;
}
}
MAC-servlet.xml
_________________
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/empsave.ds">EmpCRUD</prop>
<prop key="/empupdate.ds">EmpCRUD</prop>
</props>
</property>
</bean>
<bean id="EmpCRUD" class="controller.EmpCRUDController"/>
<bean class="org.springframework.web.servlet.view.
InternalResourceViewResolver">
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"></property>
</bean>
success.jsp
____________
Save or Update Successfull....
fail.jsp
_________________-
Save or Update fail....
【问题讨论】:
-
你得到的错误是什么?如果您仍然找不到 MAC-servlet.xml,请确保您正在正确构建和部署项目
-
@RafikBELDI 错误是“严重:上下文初始化失败 org.springframework.beans.factory.BeanDefinitionStoreException:IOException 从 ServletContext 资源 [/WEB-INF/MAC-servlet.xml] 解析 XML 文档;嵌套异常是 java.io.FileNotFoundException: 无法打开 ServletContext 资源 [/WEB-INF/MAC-servlet.xml]"
-
@RafikBELDI,原因:java.io.FileNotFoundException:无法在 org.springframework.web.context.support.ServletContextResource 打开 ServletContext 资源 [/WEB-INF/MAC-servlet.xml]。 getInputStream(ServletContextResource.java:118) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:328) ... 34 更多
-
@RafikBELDI,2016 年 8 月 10 日上午 11:33:15 org.apache.catalina.core.ApplicationContext 日志严重:StandardWrapper.Throwable org.springframework.beans.factory.BeanDefinitionStoreException:IOException 解析 XML 文档来自 ServletContext 资源 [/WEB-INF/MAC-servlet.xml];嵌套异常是 java.io.FileNotFoundException: 无法打开 ServletContext 资源 [/WEB-INF/MAC-servlet.xml]
-
@RafikBELDI,原因:java.io.FileNotFoundException:无法打开 ServletContext 资源 [/WEB-INF/MAC-servlet.xml],严重:为 servlet MAC java.io.FileNotFoundException 分配异常: 无法打开 ServletContext 资源 [/WEB-INF/MAC-servlet.xml]
标签: java mysql xml spring-mvc