0

name 変数の値を送信する次のクラスがありますが、jsp には表示されません。hello world メッセージを表示するだけです

従業員.java

public class Employee {

    private String name;

    public Employee(){
       this.name = "Daniel";
    }

    public String getName() {
        return name;
    }

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

Emp.java

public class Emp implements Controller {


private Employee empp;

protected final Log logger = LogFactory.getLog(getClass());

   @Override
     public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

        System.out.println("empp:"+this.empp.getName());
        String myname = empp.getName();
        logger.info("Returning hello view");

    return new ModelAndView("emp.jsp","name",myname);  

     }

Emp.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Hello World!</h1>
        <h2><c:out value="${name}"/></h2>
    </body>
</html>

以下も使用

@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    System.out.println("empp:"+this.empp.getName());
    String myname = empp.getName();
    logger.info("Returning hello view");
    Map<String, Object> myModel = new HashMap<String, Object>();
    myModel.put("name", this.empp.getName());

return new ModelAndView("emp.jsp","model",myModel);
}

Emp.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Hello World!</h1>
        <h2><c:out value="${model.name}"/></h2>
    </body>
</html>

使った

<h1><%= pageContext.findAttribute("model.name") %></h1>

しかし、それは Null を返します。

4

6 に答える 6

2

employeeInstance.getName()の値を ModelAndViewに追加する必要があります。docsによると、これを行う方法は次のとおりです。

@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        logger.info("Returning hello view");
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("name", employeeInstance.getName());
        modelAndView.setViewName("Emp.jsp");
        return modelAndView;
    }
于 2013-02-07T00:22:11.040 に答える
1

コントローラーはインターフェイスであるため、それらの定数変数は変更できません。これは読み取り専用の値です。インターフェイス コントローラの変数名ですか?

于 2013-02-07T00:32:47.617 に答える
0

これらの作品のどれも使用しない場合

javaのrequest.setParameter

jsp の response.getParameter

于 2013-02-07T05:39:42.107 に答える
0

私の場合の間違いは、 のorg.springframework.web.portlet.ModelAndView代わりにインポートしたことですorg.springframework.web.servlet.ModelAndView。後者を使用すると、私の問題は解決しました。

于 2017-04-04T07:24:30.487 に答える