我在JSP中以表格格式显示数据列表。每个列中的一列将具有3个不同的链接。Action类中有3个不同的方法,因此单击链接将触发相应的方法。方法从Action类返回数据后,将根据Action类返回的列表大小追加行数。我正在使用struts迭代器进行迭代并添加<tr>。我已经编写了执行该操作的jQuery,并且一切正常。
<tr>
新要求是,当我单击第一个链接时,它应显示记录集。当我再次单击第一个链接时,应删除显示的记录集。这种切换记录集的方式。
为此,我创建了一个div组件,在其中添加了新的记录集并尝试执行该操作,但是它无法按预期工作。随附了每个文件的源代码摘录。请让我知道你的想法。
JSP文件:
<s:iterator value="#mbean.myList" var="poItem"> <tr> <td class="matlNumber"> </td> <td><s:property value="#poItem.doc" /></td> <td> </td> <td> </td> <td><s:property value="#poItem.weekOne" /> </td> <td><s:property value="#poItem.weekFive" /></td> </tr> </s:iterator>
JS文件:
$(".poLink").click(function(){ var myData = $(this).closest('tr').find('td:first').text(); document.forms[0].action = "poListMaterialPlanning.action?myData ="+myData ; document.forms[0].submit(); }
我尝试使用$.ajax(),但无法将Action类返回的数据分配给JSP中的struts变量。
$.ajax()
前提:句子
无法将Action类返回的数据分配给JSP中的struts变量。
这是错误的,因为在呈现的HTML页面中没有类似“ Struts变量”的东西。
也就是说,有几种方法可以实现您的目标(尽管尚不完全清楚):
呈现页面时加载内容 ,然后通过javascript隐藏/显示它 ; 这是最快的方法,但是在某些情况下不建议这样做,例如:
通过AJAX调用添加内容 ,并通过javascript(原始javascript,jQuery,struts2-jQuery-plugin或其他库)将其删除;如果解决方案n.1不适合您的情况,则可能正是您所需要的。
为了遵守简化工作的最新标准/最佳做法/工具,您应该使用:
Ajax
Widgets
Div
Div - Reload
旁注:如果注入包含其他struts2-jquery标签的JSP代码段
struts2-jquery