2016-09-25 172 views
-2
@RequestMapping("/returnformv2") 
public String serveletTest(HttpServletRequest request){   
    String firstname = request.getParameter("fname"); 
    String lastname = request.getParameter("lname"); 
    String fullname = lastname.concat(firstname); 
    request.setAttribute("fullname", fullname);  
    return "helloworld"; 
} 

現在,如果我從JSP中檢索,$ {fullname}是lastname.concat(firstname)。 讓我展示一些基本的java代碼,比如我稱serveletTest(「hello」);如何傳遞HttpServletRequest參數?

public String serveletTest(String myString){   
    System.out.println(myString); 
    myString = myString.concat(world); 
    return "bye world"; 
} 

myString應該還是「你好」吧?

對我來說,HttpServletRequest中的getParameter()有意義,但不是request.setAttribute()。有人可以解釋這是如何工作的?

+0

request.setAttribute(「fullname」,fullname);將String對象「全名」發送給您的jsp。如果HttpServletRequest對你有意義而不是request.setAttribute()也應該有意義。 –

+1

如果你回到'myString',你會看到更新後的'myString'。像'myString = myString.concat(world);'。同樣適用於'fullName'場景。 –

+0

請檢查這個問題: http://stackoverflow.com/questions/5243754/difference-between-getattribute-and-getparameter –

回答

0

我找到了我正在尋找的答案。 X( 的RequestDispatcher在做所有的魔法......

根據的javadoc,

無效javax.servlet.ServletRequest.setAttribute(字符串名稱,對象o)

存儲的屬性在此。請求屬性是 請求之間重置該方法是最常用的結合 的RequestDispatcher

的web.xml - >ç彈性MVC調度器Servlet和設置URL映射

<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring-mvc-demo-servlet.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping>