【问题标题】:Servlet to JSP certain element in ArrayListServlet 到 JSP ArrayList 中的某些元素
【发布时间】:2016-01-31 22:48:18
【问题描述】:

我正在尝试将特定元素从我的模型传递到 servlet 到 jsp。 这在我的 servlet 中工作:System.out.println(beanModel.getSortedDomainList().get(0).split(";")[1]) 当我转到 http://localhost:8080/Comparebet/Controller 但我不知道我做错了什么,因为我没有把它放到我的 jsp 中。我看的教程大部分都是输入参数或者把代码放在JSP里。

更新编辑 在我的 JSP 中尝试过这个,我得到“null”

<%= request.getAttribute("rank1") %>

伺服器

  @WebServlet("/Controller")
public class Controller extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // ArrayList<String> sortedDomainList = new BeanModel().getSortedDomainList();


        BeanModel beanModel = new BeanModel();
        request.setAttribute("rank1", beanModel.getSortedDomainList().get(0).split(";")[1]);

        RequestDispatcher view = request.getRequestDispatcher("view.jsp");
        view.forward(request, response);

        //TESTING SERVLET
        System.out.println(beanModel.getSortedDomainList().get(0).split(";")[1]);
        System.out.println("CONTROLLER CALLED");
       // System.out.println(${rank1});
    }

     public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

    }
}

JSP

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>CompareBet</title>
</head>
<body>
<form action="/Controller/*" method="get">

<h1>${rank1.getSortedDomainList().get(0).split(";")[1] } </h1>

 </form>

</body>
</html>

【问题讨论】:

  • 你能告诉我们你的 beanmodel 类吗?
  • 为什么需要看?它的工作我也在普通的 Java 应用程序中尝试过。当我在 Servlet 中打印它时它就可以工作了。
  • 我希望你能比这更具体。它打印一个字符串吗?
  • 试试这个&lt;h1&gt;Testing: ${request.rank1 } &lt;/h1&gt;。您看到用 JSP 打印的“测试”了吗?我想知道您是否正在更新正确的 JSP。
  • @Armaiti 是的,我看到“测试:”。

标签: java jsp servlets model-view-controller


【解决方案1】:

在你的 JSP 中试试这个,而不是 rank1.getSortedDomainList().get(0).split(";")[1]

<h1>${request.rank1 } </h1>

您已经在您的 servlet 中完成了beanModel.getSortedDomainList().get(0).split(";")[1] 并将结果添加到请求范围对象中。

【讨论】:

  • System.out.println(beanModel.getSortedDomainList().get(0).split(";")[1]); 打印什么?
  • 它打印一个域,这正是我想要打印到我的视图/jsp 的内容。它只是为了测试控制台。
【解决方案2】:

尝试在你的jsp中替换这一行:

 <h1>${rank1.getSortedDomainList().get(0).split(";")[1] } </h1>

到这里:

  <h1>${rank1} </h1>

在 JSP 中,您可以使用 ${rank1} 等表达式语言访问这些数据。
并像这样从&lt;form 中取出:

    <form action="/Controller/*" method="get"> 
    ...
     </form>

尝试使用&lt;h1&gt;&lt;%= request.getParameter("rank1")%&gt;&lt;/h1&gt;

【讨论】:

  • @IdontwearString 尝试查看jsp页面使用路径("/view.jsp");
  • 在哪里查看?
  • @IdontwearString 尝试使用 bew 路径并尝试
  • RequestDispatcher view = request.getRequestDispatcher("view.jsp"); 我改成 ("/view.jsp") 没区别:/
  • 我不明白你的意思,请解释一下。
猜你喜欢
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 2011-05-14
  • 2011-05-20
  • 2013-11-15
  • 2021-08-03
  • 1970-01-01
  • 2014-03-16
相关资源
最近更新 更多