2016-09-25 173 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>