gpt4 book ai didi

java - 根据从 struts2 应用程序中的下拉列表中选择的值填充表

转载 作者:行者123 更新时间:2023-12-01 15:49:52 24 4
gpt4 key购买 nike

我在 jsp 页面中有一个下拉菜单,其中包含以下代码

<s:select name="newQuestion.CertificationId"
list="certificationList"
listKey="certificationId"
listValue="certificationName"
headerKey=""
headerValue="Select Certification"
label="Certification Name"
onchange="getQuestionsList(this.value)" />

现在下拉菜单的 onchange 事件正在调用 JS 函数 getQuestionsList(),该函数旨在获取所选认证 ID 的问题列表。

在 JS 函数中,我将其提交到一个操作类,在该类中我正在执行数据库调用以根据认证 ID 的值获取问题列表

function getQuestionDetails(value){
var submiturl = "Action1.action?certId="+value;

$.ajax({
url:submiturl,
type: 'get',
beforeSend: function(){
$("#loading").show();
alert("parsed");
},
success: function(result){
if(result!=''){

} else {
alert(result);
}
},
});
}

现在,在操作类中,我使用从数据库获取的值来设置 QuestionList 的值。questionList 是操作类中的一个实例变量,具有 getter 和 setter 方法。现在,在 struts.xml 中,我将传递到我所在的同一个 jsp下拉了

<action name="questionAction" class="questionInfo.QuestionManager"
method="displaySelectedQuestions">
<result name="loaded">/questionAdmin.jsp</result>
</action>

我遇到的问题是当我返回jsp时,我无法检索在迭代器中显示的问题列表

<table class="registrationDetailsTable">
<tr class="tabledataheader">
<td>Question Id</td>
<td>Question Description</td>
</tr>
<s:iterator value="questionList">
<tr class="tabledatarow">
<td><s:property value="questionId" /></td>
<td><s:property value="questionDesc" /></td>
</tr>
</s:iterator>
</table>

请让我知道我哪里出错了,以便我在 jsp 中填充问题列表

最佳答案

当您使用 $.ajax(...) 调用操作时,操作会通过转发到 View (questionAdmin.jsp) 来创建响应,对吧?您应该可以在该 Ajax 调用的返回值处理程序中使用此响应。

所以当你有这个时:

success: function(result){
if(result!=''){
// nothing here currently!
} else {
alert(result);
}
}

您应该对生成的 HTML 执行一些操作。您可以首先执行 alert(result) 来查看您得到的内容,然后使用 Javascript 显示新的列表内容。我会这样做,以便您有一个包含表格的 div,如下所示:

<div id="myTableWrapper"> <!-- I added this div -->
<!-- This part should come from the action when called by Ajax -->
<table class="registrationDetailsTable">
<tr class="tabledataheader">
<td>Question Id</td>
<td>Question Description</td>
</tr>
<tr class="tabledatarow">
<td>1</td>
<td>My question #1</td>
</tr>
<tr class="tabledatarow">
<td>2</td>
<td>My question #2</td>
</tr>
</table>
<!-- //This part should come from the action when called by Ajax -->
</div>

现在你可以这样做:

success: function(result){
if(result!=''){
$('.myTableWrapper').html(result);
} else {
alert(result);
}
}

关于java - 根据从 struts2 应用程序中的下拉列表中选择的值填充表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6310367/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com