Creating Multiple Pages in Spring Mvc Using Annotation

Creating Multiple Pages in Spring Mvc Using Annotation

I want to create a sample project in spring mvc using the annotation method where the user can navigate to one page to another by clicking buttons.I am new to spring mvc i had created a sample project for single page display

I am expecting your help. Thanks in advance

Login.java

 package credentials;

 public class Login {

private String name;
private String password;

public void setName(String name){
    this.name=name;
}
public String getName(){
    return name;
}

public void setPassword(String password){
    this.password=password;
}
public String getPassword(){
    return password;
}
  }

Logincontroller.java

     package credentials;

    import org.apache.tomcat.jdbc.pool.Validator;
      import org.springframework.stereotype.Controller;
       import org.springframework.ui.ModelMap;
     import org.springframework.validation.BindingResult;
      import org.springframework.web.bind.annotation.ModelAttribute;
    import org.springframework.web.bind.annotation.RequestMapping;
     import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.servlet.ModelAndView;


     @Controller
    public class LoginController {

@RequestMapping(value="/login")
public ModelAndView login(){
    return new ModelAndView("login","command",new Login());

}



@RequestMapping(value="/calc")
public ModelAndView Add(){
    return new ModelAndView("calc","command",new Login());

}


    }

login.jsp

       <%@taglib uri="" prefix="form"%>

       <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
    <html>
     <head>
     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
     <title>Insert title here</title>
   </head>
    <body>
    <h2>Login here</h2>
    <form:form method="POST" action="calc">
    <table>
    <tr>
     <td><form:label path="name">Name</form:label></td>
      <td><form:input path="name" /> </td> 
     </tr>
     <tr>
     <td><form:label path="password">Password</form:label></td>
     <td><form:password path="password"></form:password></td>

      </tr>
       <tr>
       <td colspan="2">
         <input type="submit" value="login" />
       </td>  

       </table>

calc.jsp <%@taglib uri="" prefix="form"%>

     <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"      "">
       <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
         <title>Insert title here</title>
         </head>
         <body>
         <form:form method="POST" action="content">
         <h2>Add content</h2>
         <table>

         <tr>
         <form:button path="mouse" value="Mouse">Mouse</form:button>

        <td>

            </tr>
       </table>
      </form:form>
      </body>
      </html>

content.jsp

    <%@taglib uri="" prefix="form"%>

      <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
       <html>
       <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
     <title>Insert title here</title>
      </head>
       <body>
      <h2>Submitted Student Information</h2>


        </body>
          </html>

when this "Mouse" button on calc page is clicked the following error occurs

      HTTP Status 404 - 

    type Status report

    message 

   description The requested resource is not available.

After adding

    <form:input path="mouse"/>

the following error occured when clicking login button in login page

         HTTP Status 500 - An exception occurred processing JSP page /WEB-INF/jsp/calc.jsp  at line 16

     type Exception report

       message An exception occurred processing JSP page /WEB-INF/jsp/calc.jsp at line 16

        description The server encountered an internal error that prevented it from fulfilling this request.

exception

            org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/calc.jsp at line 16

        13: 
        14: <tr>
        15:   <form:button path="mouse" value="Mouse">Mouse</form:button>
        16:    <form:input path="mouse"/>
        17: <td>
        18: 
        19: </tr>


   Stacktrace:
       org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)


 root cause 

    org.springframework.beans.NotReadablePropertyException: Invalid property 'mouse' of     bean class [credentials.Login]: Bean property 'mouse' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?
org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrapperImpl.java:729)
org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrapperImpl.java:721)
org.springframework.validation.AbstractPropertyBindingResult.getActualFieldValue(AbstractPropertyBindingResult.java:99)
org.springframework.validation.AbstractBindingResult.getFieldValue(AbstractBindingResult.java:219)
org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:120)
org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:178)
org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:198)
org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:164)
org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.autogenerateId(AbstractDataBoundFormElementTag.java:151)
org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.resolveId(AbstractDataBoundFormElementTag.java:142)
org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:126)
org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:421)
org.springframework.web.servlet.tags.form.InputTag.writeTagContent(InputTag.java:142)
org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:102)
org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:79)
org.apache.jsp.WEB_002dINF.jsp.calc_jsp._jspx_meth_form_005finput_005f0(calc_jsp.java:201)
org.apache.jsp.WEB_002dINF.jsp.calc_jsp._jspx_meth_form_005fform_005f0(calc_jsp.java:126)
org.apache.jsp.WEB_002dINF.jsp.calc_jsp._jspService(calc_jsp.java:81)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
3

1 Answer

There's loads of sample projects that already do this that Spring offer on github.

Take a look at their repository here

So all you want is to click a button, this fires off to a spring endpoint that returns a view.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

James H. Sterling
Author

James H. Sterling

James Sterling reports on renewable energy developments, climate policy, ecological conservation, and green tech innovations around the globe.