java - 如何将从 Controller 类返回的 JSON 数组打印到 jsp 页面

标签 java arrays json jsp

我从java类返回一个json数组作为返回类型,并尝试在jsp页面上显示数据。一切正常(正如调试所说)。但不知道jsp/html页面的方法(代码/语法)。 类别

JSONArray jsonArray = new JSONArray();

    public JSONArray get_user() {

        String sql = "SELECT * FROM USER_INFO";
        try {
            con = new connection.connect().getConnection();
            smt = con.createStatement();
            rset = smt.executeQuery(sql);

            while (rset.next()) {
                JSONObject obj = new JSONObject();
                obj.put("Email", rset.getString(2));
                obj.put("Password", rset.getString(3));
                jsonArray.put(obj);
            }
        } catch (Exception ex) {
            ex.getMessage();
        }

        return jsonArray;
    }

jsp

<%
controller.fetch_user obj = new controller.fetch_user();
obj.get_user();
%>
<table>
<tr><td>Email</td><td>Password</td></tr>

 *** here i want to display all the records ****

</table>

最佳答案

最好的解决方案是返回 json,你可以返回 pojo

创建您喜欢的内容

class UserInfo{
 private String email;
 private String Password;
 //setter and getter
}

然后返回 userInfo 列表

所以你的方法是

public List<UserInfo> get_user() {
    List<UserInfo> userInfoList = new AraayList<UserInfo>()
    String sql = "SELECT * FROM USER_INFO";
    try {
        con = new connection.connect().getConnection();
        smt = con.createStatement();
        rset = smt.executeQuery(sql);

        while (rset.next()) {
            UserInfo obj = new UserInfo();
            obj.setEmail(rset.getString(2))
            obj.setPassword(rset.getString(3))

            userInfoList.add(obj);
        }
    } catch (Exception ex) {
        ex.getMessage();
    }

    return userInfoList;
}
// for json object

JSONArray jsonArray = new JSONArray();

public JSONArray get_user() {

    String sql = "SELECT * FROM USER_INFO";
    try {
        con = new connection.connect().getConnection();
        smt = con.createStatement();
        rset = smt.executeQuery(sql);

        while (rset.next()) {
            JSONObject obj = new JSONObject();
            obj.put("Email", rset.getString(2));
            obj.put("Password", rset.getString(3));
            jsonArray.put(obj);
        }
    } catch (Exception ex) {
        ex.getMessage();
    }

    return jsonArray;
}

你的jsp代码是

<%
 controller.fetch_user obj = new controller.fetch_user();
 obj.get_user();
%>
<table>
<tr><td>Email</td><td>Password</td></tr>
for(UserInfo userInfo:obj){
<%
%>
<tr>
  <td><%=userInfo.getEmail()%><td>
  <td><%=userInfo.getPassword()%><td>
</tr> 
<%
 }
%>

</table>

如果你的方法仍然返回 jsonAraay,代码将是

 <%
 controller.fetch_user obj = new controller.fetch_user();
JSONArray getArray = obj.get_user();
%>
<table>
<tr><td>Email</td><td>Password</td></tr>



<%
  for(int i = 0; i < getArray.size(); i++){
  JSONObject userInfo = getArray.getJSONObject(i);
%>
<tr>
  <td><%=userInfo.get("Email")%><td>
  <td><%=userInfo.get("Password")%><td>
</tr> 
<%
 }
%>

</table>

在jsp代码中你可以像在java中一样访问它

也许这会对你有很大帮助

关于java - 如何将从 Controller 类返回的 JSON 数组打印到 jsp 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35501208/

相关文章:

java - 无法用java opencv加载图片

java - 如何从 JSON 数组中检索选定的数据?

java - 数组处理时出现越界异常

c# - 是否有从 JSON Web 服务返回错误状态的传统方法?

json - bash 中的转义字符(对于 JSON)

java - 如何打印用户输入的数组(java)

java - SQL 匹配字符串

java - 我的 JTable 未扩展到其所在面板的整个宽度

java - 根据原句子数组对句子数组进行排序

php - Laravel 5.2 : Redraw DataTable is not working But ajax. 重新加载()正在工作