如何在Struts中使用List <object>?</object>

时间:2014-01-12 20:19:25

标签: jsp struts jsp-tags struts-1

我尝试使用 struts框架编写代码。

我是struts的新人,我没有这方面的经验。

我想做什么,使用 struts中的对象列表

假设我们从ActionForm扩展了java类,如下所示:

ResumeMessages.java:

public class ResumeMessages_Form extends ActionForm{

private List<Message> listallmessages; // this is the list wich i want to use it
private DbMessage DbMessage; // a simple java class to connect from JDBC to xamp ...

public ResumeMessages_Form() {
    super();
    DbMessage = new DbMessage();
    try {
        listallmessages = DbMessage.List_Messages(); // return list of all messages in the database
    } catch (SQLException ex) {
        Logger.getLogger(ResumeMessages_Form.class.getName()).log(Level.SEVERE, null, ex);
    }
}

public List<Message> getListallmessages() {
    return listallmessages;
}

public void setListallmessages(List<Message> listallmessages) {
    this.listallmessages = listallmessages;
}

@Override
public String toString() {
    return "ResumeMessages_Form{" + "listallmessages=" + listallmessages + ", DbMessage=" + DbMessage + '}';
}

@Override
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
    ActionErrors errors = new ActionErrors();
    return errors;
}

}

并假设我想在jsp文件中使用列表' listallmessages ',如下所示:

Resum.jsp:

  <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Untitled Page</title>
                 <jsp:include page="/files/resumemessages/resumemessages_style.jsp"/>

    </head>
    <body>
        <html:form action="/resum" method="post">
<table>
<% for (int i=0;i<listallmessages.size();i++){%>
    <tr><td> <%= listallmessages.get(i).message_name %>
</td></tr>
<%}%>
</table>
</html:form>
</body>
</html>

注意:我对 struts-config.xml 没有任何问题,我很清楚我将在struts-config.xml中做什么,只需要一个人帮助我使用struts在jsp文件中使用List。

非常感谢:) 二元人

1 个答案:

答案 0 :(得分:0)

我不会在JSP页面中使用scriptlet(Java代码) - 最好使用标记库,如JSTL或Struts标记库。

使用JSTL中的c:forEachc:out的示例:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<c:forEach var="message" items="${listallmessages}">
    <c:out value="${message.message_name}"/> 
</c:forEach>

Struts标记库包含logic:iteratebean:write,与使用类似:

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

<logic:iterate name="listallmessages" id="message">     
    <bean:write name="message" property="message_name"/> 
</logic:iterate>