【发布时间】:2026-01-23 11:30:01
【问题描述】:
所以,我正在处理一个多项选择问题条目页面,我想用 ajax 完全处理它。我想灵活处理问题的选项数量。
这是 jquery 部分:
$("#QuestionModPageSubmitButton").click(function(){
var QuesDesc=$("#QuesDesc").val();
var Options=[];
var QuestionId=$("#QuestionId").attr("data-id");
var CorrectOption=$('input[type="radio"]:checked').val();
var TotalOptions=$("#TotalOptions").attr("data-total");
var SubjectId=$("#SubjectId").attr("data-id");
for(var i=0;i<TotalOptions;i++)
{
Options.push($("#Option"+i).val());
}
$.ajax({
type:"POST",
url:"ajax/ModifyQuestion.jsp",
data:{
Subject:SubjectId,
QID:QuestionId,
Question:QuesDesc,
OptionValues:Options,
Correct:CorrectOption,
TotalOptions:TotalOptions},
});
});
我想将 Options Array 发送到 jsp 页面“ModifyQueston.jsp”。
这是我用来读取发送数据的jsp代码:
int SubjectId=Integer.parseInt(request.getParameter("Subject"));
int QuestionId=Integer.parseInt(request.getParameter("QID"));
String Question=request.getParameter("Question");
String[] Options=request.getParameterValues("OptionValues");
int CorrectOption=Integer.parseInt(request.getParameter("Correct"));
int TotalOptions=Integer.parseInt(request.getParameter("TotalOptions"));
但是使用这些代码我无法读取 jsp 页面中的数组。当我尝试读取 Options 数组的长度或尝试通过提供索引来读取值时,我得到 NullPointerException。
我想将数据发送到jsp的脚本部分很好。所以问题是如何将它放入jsp页面。
我尝试将数组转换为单个字符串,方法是用“-”分隔每个值,然后使用 getParameter() 函数读取它,然后使用 split() 函数将其分离回 Array。
脚本:
var OptionsString="";
for(var i=0;i<TotalOptions;i++)
{
Options.push($("#Option"+i).val());
OptionsString+=(Options[i]+((i<TotalOptions-1)?" - ":" "));
}
JSP:
String[] Options=(request.getParameter("OptionValues")).split("-");
它工作正常。但我不想这样做,因为如果任何选项已经包含“-”,代码就会崩溃。
那么,如何做到这一点呢?
【问题讨论】:
标签: javascript ajax jsp