我有名字booksearch.js和admin.java的文件。我需要将uri的值从booksearch.js传递给admin.java。 uri的值具有特殊字符'+',所以我在booksearch.js中使用了encodeURIComponent。我在一个警告框中警告了uri,在encodeURIComponent之后,uri的值被正确编码。但是当我使用getParameter()函数将此编码值传递给admin.java时。 uri的值没有'+'符号。
我在这里做错了什么?
booksearch.js的代码是
function editBook(uri, properties){
var params = "";
for (var property in properties[0])
params += "&" + property + "=" + properties[0][property];
alert("This is the uri "+uri);
uri=encodeURIComponent(uri);
alert("The new uri is "+uri);
$.ajax({
url: "Admin?action=edit&uri=" + uri + params,
dataType: "html",
success: function(response){
$("#output").append(response);
}
});
}
admin.java中的代码是
if (action.equals("edit")) {
String uri = request.getParameter("uri");
System.out.println("this is the uri of the new book added "+uri);
输出
在uri的第一个警告框中,我得到了
这是C ++中的uri http://protege.stanford.edu/kb#BestSeller
新的uri在C ++中是http://protege.stanford.edu/kb#BestSeller
在getparameter之后我得到输出为
这是在C
中添加http://protege.stanford.edu/kb#BestSeller的新书的用户发生了什么事?
此致
阿奇纳。
答案 0 :(得分:0)
你在这里做错了什么。 getParameter()
只是将网址解码为正常格式。
如果您更想要原始(URL编码)查询字符串,请使用request.getQueryString()
。您只需要自己在其他参数中解析它。