我想创建一个页面,其中输入字段动态显示取决于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>
最后我想通过迭代器
保存在文本框中输入的数据