私のjspページには、テキストボックスに入力されたすべての値を取得するためのjavascriptコードがあります。そして、それらを配列に入れ、次のページに渡します。これは私のJavaScript関数です
function gt2()
{
var pqr="100";
var arr=new Array();
var x=<%=height%>;
var attstr=null;
for(var t=0; t<x; t++)
{
var a="inputText"+t;
var e=document.getElementById(a);
var val= e.value;
arr[t]=val;
if(t==0)
{
attstr=arr[t]+",";
}
if((t!=x)&&(t!=0))
{
if(t==x-1)
{
attstr+=arr[t];
}
else
{
attstr+=arr[t]+",";
}
}
}
window.location.assign("gt_Iba2?value="+attstr);
}
2 番目の jsp ページで、その値を取得しています。
String newValue=request.getParameter("value");
System.out.println("!###The new value in second jsp is "+newValue);
String[] allvalues=newValue.split(",");
System.out.println("The length of allvalues is "+allvalues.length);
最初の jsp には 5 つのテキスト ボックスがあります。私のコードは、これらのテキストボックスから値を正しく選択し、特殊文字が含まれていない場合にのみ他のページに渡します。
上記の条件の出力は私にとっては問題ありません。
!###The new value in second jsp is A|B|C|Dbcdrt,A|B|C|Dbcdrt,A|B|C|Dbcdrt,A|B|C|Dbcdrt,A|B|C|Dbcdrt
The length of allvalues is 5
したがって、#、&、% などの文字を追加すると、配列が壊れます。つまり、その文字の後に他の値を取得していません。
この場合
3 番目のテキスト ボックスに「&」記号を追加しました。だから私はこのような出力を得ています
!###The new value in second jsp is A|B|C|Dbcdrtdf,A|B|C|Dbcdrtdf,A|B|C|Dbcdrtdf
The length of allvalues is 3
その「&」記号の後は、値が表示されません。サイズも 3 です。これを 2 番目のテキスト ボックスに追加すると、サイズは 2 になります。これらのシンボルでこの動作が行われるのはなぜですか?これらのシンボルも渡す必要があります。ここで何が問題なのですか?助けが必要です
ありがとう