【问题标题】:how to get value from list in java using LIFERAY 6.2如何使用LIFERAY 6.2从java中的列表中获取价值
【发布时间】:2016-02-18 14:37:28
【问题描述】:

我正在使用 Liferay 6.2 社区和 JAVA Maven。 我想从 List 中获取价值,但我总是收到该类的名称。 这是我的代码:

@ResourceMapping(value="getDetailSchd")
public void getDetailSchd(ResourceRequest request, ResourceResponse response) throws Exception,IOException {
        ClassListDao listDao = new ClassListDao();
        List<ClassList> list = listDao.listSchdByidroom(tt_room_id);
        System.out.println("list="+list);

        response.getWriter();
}

列表中的值为“ClassList@5624”

那么,我怎样才能显示该值?

这是另一个代码:

型号

package com.spring.maven.model;

public class ClassList {
    private Integer tt_schd_id;
    private String coursetranscript;
    private String name_related;
    public Integer getTt_schd_id() {
        return tt_schd_id;
    }
    public void setTt_schd_id(Integer tt_schd_id) {
        this.tt_schd_id = tt_schd_id;
    }
    public String getCoursetranscript() {
        return coursetranscript;
    }
    public void setCoursetranscript(String coursetranscript) {
        this.coursetranscript = coursetranscript;
    }
    public String getName_related() {
        return name_related;
    }
    public void setName_related(String name_related) {
        this.name_related = name_related;
    }
}

public List<ClassList> listSchdByidroom(Integer id) throws Exception{
        if(id == null){
            return null;
        }
        DatabaseConnection dbcon = new DatabaseConnection();
        Connection con = dbcon.openConnect();
        List<ClassList> values = new ArrayList<ClassList>();

        PreparedStatement ps = con.prepareStatement(sqlGetSchdByidroom );
        ps.setInt(1, id);
        ResultSet rs = ps.executeQuery();       
        while(rs.next()){
            ClassList classList = konversiResult2(rs);
            values.add(classList);
        }
        con.close();    
        return values;
    }

【问题讨论】:

  • 您还应该注意您使用的是 Spring。 Liferay 只是您的 portlet 运行的门户...
  • 价值是什么意思?它是您的 List 的 toString 表示、JSON 表示、纯 HTML 吗??

标签: java maven liferay-6


【解决方案1】:

如果您想将该响应按原样发送回视图:

response.getWriter().println(list);

如果您想要该列表的 json 表示:

  • Jackson添加依赖项:

     <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>0.9.8</version>
    </dependency>
    
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-lgpl</artifactId>
        <version>1.9.9</version>
    </dependency>
    
  • 改变方法:

    import com.fasterxml.jackson.databind.ObjectMapper;
     ....
    @ResourceMapping(value="getDetailSchd")
    public void getDetailSchd(ResourceRequest request, ResourceResponse  response) throws Exception,IOException {
                ClassListDao listDao = new ClassListDao();
                List<ClassList> list = listDao.listSchdByidroom(tt_room_id);
                System.out.println("list="+list);
    
        OutputStream outStream = res.getPortletOutputStream();
        ObjectMapper mapper = new ObjectMapper();
        mapper.writeValue(outStream, list);
    }
    

【讨论】:

    【解决方案2】:

    我使用此代码并且它正在工作:

    JSONArray stateArray = JSONFactoryUtil.createJSONArray();       
    
    for (int i = 0; i < list.size(); i++) {
    
        JSONObject stateObject;
        stateObject = JSONFactoryUtil.createJSONObject();
    
        System.out.println("data ke["+i+"] = "+list.get(i).getTt_schd_id());
        stateObject.put("tt_schd_id", list.get(i).getTt_schd_id());
        stateArray.put(stateObject);
    
    }
    response.getWriter().println(stateArray);
    

    我从here 阅读了该教程。

    谢谢大家。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-11
      • 2016-03-11
      • 1970-01-01
      • 2022-08-17
      • 1970-01-01
      相关资源
      最近更新 更多