ajax - How can I return text only from Spring servlet? -


here's story, have single page application, want call servlet ajax object, , have text returned servlet displayed on webpage.

here's example of how it:

index.html

<!doctype html> <html> <head> <meta charset="iso-8859-1"> <title>insert title here</title> <script src="jquery.js" type="text/javascript" ></script> <script type="text/javascript">     function submittext() {          var xmlhttp = new xmlhttprequest();         xmlhttp.open("get", "submit", true);         xmlhttp.send();         document.getelementbyid("mytextfield").innerhtml = xmlhttp.responsetext;      }  </script> </head> <body>       <input type="text" name="mytext" />     <br>     <button onclick="submittext()">submit</button>     <br>             <div id="mytextfield"></div>  </body> </html> 

web.xml

 <servlet>         <servlet-name>testdogservlet</servlet-name>         <servlet-class>             org.springframework.web.servlet.dispatcherservlet         </servlet-class>         <load-on-startup>1</load-on-startup>     </servlet>     <servlet-mapping>         <servlet-name>testdogservlet</servlet-name>         <url-pattern>/submit</url-pattern>     </servlet-mapping> 

testdogservlet-servlet

<?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.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">      <context:component-scan base-package="world.hello.mytest" />      <bean id="viewresolver"         class="org.springframework.web.servlet.view.internalresourceviewresolver">         <property name="viewclass"             value="org.springframework.web.servlet.view.jstlview" />         <property name="prefix" value="/web-inf/jsp/" />         <property name="suffix" value=".jsp" />     </bean> </beans> 

myservlet.java

package world.hello.mytest;  import org.springframework.stereotype.controller; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.servlet.modelandview;  @controller public class myservlet {       private string savedtext;     @requestmapping("/submit")     public modelandview submittext()     {         return new modelandview("text", "barmodelname", "submission successful modelobject");      }    } 

text.jsp

${barmodelname}; 

this solution works fine. click submit button, , changes div contents text contained in text.jsp.

the question is, seems redundant have entire page dedicated container holding text. there tidier solution doing this?

a spring controller can pass in httpservletrequest , httpservletreponse mapped methods.

modify method accept these 2 arguments, , can directly modify httpservletresponse.

@requestmapping("/submit") private void submit(httpservletrequest request, httpservletresponse response) throws ioexception {                outputstream os = response.getoutputstream();     os.write("submission successful modelobject".getbytes());     os.close();     os.flush();      } 

Comments

Popular posts from this blog

node.js - Mongoose: Cast to ObjectId failed for value on newly created object after setting the value -

gradle error "Cannot convert the provided notation to a File or URI" -

python - NameError: name 'subprocess' is not defined -