spring mvc view not rendered -
i'm beginner in spring mvc , trying create basic web app flow. have result.jsp clicking on submit should render submit.jsp. can see controller invoked view submit.jsp not being rendered. gives me http 404
status error no logs in tomcat. can please me figure out went wrong here.
i observe when running app, being directed to
testspring/
see result.jsp. rather expected be
testspring/result.jsp
on running app. please pardon ignorance.
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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="webapp_id" version="2.5"> <display-name>testspring</display-name> <servlet> <servlet-name>frontcontrol</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>frontcontrol</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
frontcontrol-servlet.xml
<context:component-scan base-package ="com.shell.spring.testspringapp"> </context:component-scan> <bean id ="viewresolver" class="org.springframework.web.servlet.view.internalresourceviewresolver"> <property name="prefix" value="/web-inf/jsp/" /> <property name="suffix" value=".jsp" /> </bean>
controller class- frontcontrol
@controller public class firstcontrol { @requestmapping(value="/") public modelandview invokeme(model m) { modelandview mav=new modelandview(); mav.setviewname("result"); system.out.println("in invoke me method"); return mav; } @requestmapping(value="/submit" ,method=requestmethod.get) public string submit(model m) { system.out.println("in submitmethod"); return "submit"; } }
as mentioned in comments - yo should update web.xml maps * through servlet:
<servlet-mapping> <servlet-name>frontcontrol</servlet-name> <url-pattern>*</url-pattern> </servlet-mapping>
you can adjust later if want limit available mappings, now.
after that, need see result.jsp
(my understanding question page renders ok when hit root of webapp, controller call & view roking ok). however, educated guess things can check:
- what url on button pressing? relative? e.g. "
submit
" or "/submit
" - latter cut out app context. example, if app root of apphttp://localhost:8080/testspring
using url/submit
directhttp://localhost:8080/submit
- not hitting spring app , 404 straight away - what element submit button? button or href? if button, method using? needs match method on controller - on controller matching against
get
requests url submit - if buttonposting
method won't hit.
to answer final point - yes, render testspring/
rather testspring/result.jsp
- because using mvc framework , not hitting files on system - e.g. request has hit root url (/
) handled controller in turn renders view - view 1 jsp or made of several files (using tiles etc) or else - not "hitting" jsp directly, rather jsp being used controller when serving path "/"
Comments
Post a Comment