struts2中的迭代器在动态输入字段中

时间:2014-08-21 10:39:24

标签: struts2

我想创建一个页面,其中输入字段动态显示取决于select标签。为此,我创建了一个jsp文件名receiptBudget.jsp

<html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script src="http://localhost:8088/Gpms/js/jquery-1.9.1_1.js"></script>
    <script src="http://localhost:8088/Gpms/js/jquery.inputlimiter.1.3.1.js"></script>
    <script src="http://localhost:8088/Gpms/js/jquery-ui.js"></script>
    <script src="http://localhost:8088/Gpms/js/jquery.inputlimiter.1.3.1.min.js">        

    <script language="javascript">
        function getrecpHead() {
            var recpLedHead = document.getElementById('recpLedHead').value;
     $.get("budget.action", {recpLedHead: $("#recpLedHead").val()},   displayBlocks);
        }
        function displayBlocks(response) {
            if (response) {
                $("#divBudget").html(response);
            }

        }
     </script>
    </head>
 <body>
        <s:form  method="post" name="receiptBudget">

            <table border="1">
                <tr>
                    <td colspan="1"><div align="center">Date</div></td>
                    <td><div align="center"><label for="transDate" id="transDate">
                                <%=dateFormat.format(calobj.getTime())%></label></div>
                    </td>
                    <td><div align="center">Financial Year </div></td>
       <td colspan="2"><div align="center"><label for="finyear" id="finyear">
                                <%=financialYear%></label></div>
                    </td>
                </tr>
                <tr>
                    <td colspan="2"><div align="center">LedgerHead Head </div></td>
                    <td colspan="3">  <div align="center">
              <select name="recpLedHead" id="recpLedHead" onchange="getrecpHead()">
                                <option value="0">Select Ledger Head</option>
                                <%
                                    String ledgerName;
                                    for (int i = 0; i < ledlist.size(); i++) {
                                        ledgerName = ledlist.get(i);
                                %>
                              <option value="<%=ledgerName%>"><%=ledgerName%></option>
                                <%}%>
                            </select>          
                        </div></td>
                </tr>
                <tr>
         <td width="76" colspan="1"><div align="center">CollectionHead</div></td>
                    <td width="117"><div align="center">Preceeding Year</div></td>
                    <td width="114"><div align="center">Current Year </div></td>
                    <td width="112"><div align="center">Next Year </div></td>
                    <td width="112"><div align="center">Remarks </div></td>
                </tr>
            </table>
            <table>             
                <s:form action="budgetSave">
                    <div id="divBudget">

                    </div>

                    <tr>
                        <td colspan="1"><s:submit value="save"></s:submit></td>
                    </tr>
                </s:form>

            </table>
        </s:form>
             </div>

           </body>
     </html>

--------------并通过动作类调用jsp是getRecpHead.jsp

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>

    <table>
        <s:iterator value="mxplist" id="mxplist">

            <tr>

                <td><s:textfield name="collectionHead" theme="simple"/></td>
                <td><s:textfield name="receiptOn" theme="simple"/></td>
                <td><s:textfield name="plan" theme="simple"/></td>
                <td><s:textfield name="budgeted" theme="simple"/></td>
            </tr>
 </s:iterator>

    </table>

</body>

操作文件是ReceiptBudget.java

   public class ReceiptBudget extends ActionSupport {
   private HttpServletRequest request;
   private HttpServletResponse response;
   List<MasterCollectionhead> mxplist;
   public ReceiptBudget() {
   }

    @Override
    public String execute() throws Exception {
    HttpSession hs = request.getSession();
    UserMaster user = (UserMaster) hs.getAttribute("user");
    String recpHead = request.getParameter("recpLedHead");
    System.out.println("receipt"+recpHead);
    SessionFactory sf = GpmsHibernateUtil.getSessionFactory();
    Session sess = sf.openSession();
    Transaction tx = sess.beginTransaction();

    Query qq = sess.createQuery("from MasterCollectionhead as mba where mba.ledgerId "
    + " in (SELECT mlh.id.ledgerId FROM MasterLedgerhead mlh WHERE mlh.admHead = ? and           
    +" mlh.id.gpCode = ?) "
    + " and mba.id.gpCode = ?");
    qq.setString(0, recpHead);
    qq.setString(1, user.getGpCode());
    qq.setString(2, user.getGpCode());

    mxplist = (List<MasterCollectionhead>)qq.list();      
    return "success";
}
public String save() throws Exception {
System.out.println("mxplist"+mxplist.size());
return "success";
}
public List<MasterCollectionhead> getMxplist() {
    return mxplist;
}

public void setMxplist(List<MasterCollectionhead> mxplist) {
    this.mxplist = mxplist;
}

@Override
public void setServletRequest(HttpServletRequest request) {
    this.request = request;
}

@Override
public void setServletResponse(HttpServletResponse response) {
    this.response = response;
}

}

并且struts.xml标记是

<action name="budget" class="com.gpms.ReceiptBudget" method="execute">
<result name="success">/budget/getRecpHead.jsp</result>
<result name="input">/budget/receiptBudget.jsp</result>
</action>
<action name="budgetSave" class="com.gpms.ReceiptBudget" method="save">
<result name="success">/budget/receiptBudget.jsp</result>
<result name="input">/budget/home.jsp</result>
</action>

最后我想通过迭代器

保存在文本框中输入的数据

0 个答案:

没有答案