Java – 将字符串转换为List
发布时间:2020-12-15 04:55:58 所属栏目:Java 来源:网络整理
导读:这是将字符串转换为列表的正确方法吗? List styles = (List)request.getParameter("styles"); Model (BeerExpert.java)package com.example.model;import java.util.*;public class BeerExpert { public List getBrands(String color){ List brands = new A
这是将字符串转换为列表的正确方法吗?
List styles = (List)request.getParameter("styles"); Model (BeerExpert.java) package com.example.model; import java.util.*; public class BeerExpert { public List getBrands(String color){ List brands = new ArrayList(); if(color.equals("amber")){ brands.add("Jack Amber"); brands.add("Red Moose"); } else{ brands.add("Jail Pale Ale"); brands.add("Gout Scott"); } return brands; } } 接下来是servlet类 BeerSelect.java package com.example.web; import com.example.model.*; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class BeerSelect extends HttpServlet { public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{ response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("Beer Selection Advice <br>"); String c = request.getParameter("color"); BeerExpert be = new BeerExpert(); List result = be.getBrands(c); request.setAttribute("styles",result); RequestDispatcher view = request.getRequestDispatcher("results.jsp"); view.forward(request,response); } } 最后是jsp. results.jsp <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@page import="java.util.*" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1 align="center">Beer Recommendations in JSP!!!</h1> <% List styles = (List)request.getParameter("styles"); Iterator it = styles.iterator(); while(it.hasNext()){ out.print("<br> try " + it.hasNext()); } %> </body> </html> 谢谢 解决方法
使用您提供的附加servlet / JSP上下文,您的代码中的真正错误似乎是在JSP页面中使用request.getParameter:该方法确实返回了一个String,并且您无法转换List中的String,没有演员表,甚至没有语言或数据结构允许的任何其他操作.您可以使用已建议的方法之一将String插入List中(或使用其他方法将List转换为String),但可以根据您不需要的代码进行判断.
在servlet代码中,将styles属性设置为包含啤酒品牌的List.因此,要恢复该List,您需要调用request.getAttribute而不是getParameter. getAttribute方法返回一个Object,它实际上是一个List,你知道因为你已经将它设置为这样,所以在这种情况下,强制转换就是用原始类型取回值所需的操作.在代码中,这意味着 List styles = (List) request.getAttribute("styles"); 在您的JSP中,代替那些让您烦恼的行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |