我正在运行简单的spring应用程序。我在运行时正确配置了web.xml和spring配置文件我没有得到任何异常但是当我点击提交按钮时我得到404例外。我知道我的弹簧配置文件没有读取控制器不进入控制器类。有没有办法找到我的弹簧配置文件是否读取。
我的web.xml文件
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/DispatcherServlet-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
弹簧配置文件
<context:component-scan base-package="com.nic" />
<!-- <bean name="testclass" class="com.nic.ExampleTest"/> -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
jsp文件
form id="form" action="hello.html" method="post">
User Name:<input type="text" name="uname"/><br/>
<input type="button" value="submit"/>
这是我的控制器类
@RequestMapping(value="/hello.html",method=RequestMethod.POST)
public String getBean(HttpServletRequest request,ModelMap map) throws IOException, ParserConfigurationException, SAXException{
URL resource = request.getServletContext().getResource("/WEB-INF/spring/DispatcherServlet-servlet.xml");
InputStream in = resource.openStream();
DocumentBuilderFactory docBuilderFactory=DocumentBuilderFactory.newInstance();
docBuilderFactory.setValidating(false);
// docBuilderFactory.setFeature("http://xml.org/sax/features/validation", false);
// docBuilderFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
DocumentBuilder dBuilder = docBuilderFactory.newDocumentBuilder();
Document doc = dBuilder.parse(in);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("bean");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
if(eElement.getElementsByTagName("path")!=null){
//System.out.println("path : " + eElement.getAttribute("path"));
}
}
}
return "success";
}
答案 0 :(得分:0)
根据您发布的内容,看起来Spring只是按照您要求它执行的操作。
/
,这意味着应用程序应该能够直接提供不在WEB-INF下的资源(jsp,css,images)InternalResourseViewResolver
- 无控制器声明 当您点击提交按钮时,浏览器会将请求发布到/current_path_of_jsp/hello.html
。但是当你忘记<mvc:annotation-driven />
时(正如M. Deinum在评论中已经注意到的那样),Spring没有处理@RequestMapping
注释。
BTW:您没有显示控件类是否使用@Controller
,@Component
或@RequestMapping
进行注释...