![](/img/trans.png)
[英]jqPlot how to make a chart from java arraylist and JSF beans
[英]How to retrieve an arraylist from Managed Beans in JSF
我对JSF
并不JSF
,只是开始阅读一些有关它的教程。 我创建了一个JSP
页面和Managed Beans
类,并成功运行了该应用程序。 根据我的简单理解,JSF为用户生成了JSP文件作为HTML/CSS
。 这是我的代码:
public calss Beans
{
private ArrayList<String> objectString = new ArrayList<String>();
private JSONObject obj = new JSONObject();
private JSONArray jsonArr = new JSONArray();
// Fill the two arrays
public void fill()
{
}
public void setJSON(JSONArray jsonArr)
{
this.jsonArr = jsonArr;
}
public JSONArray getJSON()
{
return jsonArr;
}
public void setObjectString(ArrayList<String> objectString)
{
this.objectString = objectString;
}
public ArrayList<String> getobjectString()
{
return objectString;
}
}
我的问题是,在JSP
,如何在没有HTML标签的情况下按原样在managed beans
获取数组。 我应该使用JSONArray
进行解析吗? 这是我的JSP
代码:
<h:dataTable value="#{beans.objectString}" var="object">
<h:column>
<h:outputText value="#{object}"/>
</h:column>
</h:dataTable>
在此代码中, objectString
正确显示为一列。 我只想将该数组列表作为Javascriopt中的数组来获取,因为我需要其他一些工作。 我尝试使用JSONArray,但遇到了问题。 谁能帮我解决这个问题。 非常感谢您的协助。
一个JSP示例-JSONExample.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="mypackage.*" %>
<%@ page import="java.util.*" %>
<%@ page import="flexjson.JSONSerializer.*" %>
<!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=UTF-8">
</head>
<body>
<%
String id = request.getParameter("id");
String json = new JsonArrayGenerator(id).getJsonArray();
%>
<script>
var array = <%=json%>;
alert(array.toString());
</script>
</body>
</html>
发电机
package mypackage;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import flexjson.JSONSerializer;
public class JsonArrayGenerator {
private String id;
public JsonArrayGenerator(String id) {
super();
this.id = id;
}
public String getJsonArray(){
//some list of things
List<Object> list = new ArrayList<Object>();
list.add(1);
list.add(this.id);
list.add(new Date());
list.add("Hello");
//now serialize
JSONSerializer serializer = new JSONSerializer();
String json = serializer.serialize(list);
return json;
}
}
或使用Servlet获取JSON数组的另一种方法
package mypackage;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import flexjson.JSONSerializer;
@WebServlet("/JSONExample")
public class JSONExample extends HttpServlet {
private static final long serialVersionUID = 1L;
public JSONExample() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id = request.getParameter("id");
//use the id to retrieve the list you want
//some list of things
List<Object> list = new ArrayList<Object>();
list.add(1);
list.add(id);
list.add(new Date());
list.add("Hello");
//now serialize
JSONSerializer serializer = new JSONSerializer();
String json = serializer.serialize(list);
response.setContentType("application/json");
//print it
PrintWriter out = response.getWriter();
out.write(json);
out.flush();
}
}
假设您要部署到名为Test的应用程序,则这些URL是
http://yourserver/Test/JSONExample (servlet)
和
http://yourserver/Test/JSONExample.jsp (JSP)
希望对您有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.