使用正确的编码将西里尔字符串从 jsp 发送到 java class 通过 ajax
Sending Cyrillic string from jsp to java class trough ajax with correct encoding
我的 jsp 页面中有几个输入字段,这些字段获取西里尔文输入,然后我按下一个按钮,尝试使用 ajax 发送到此 java 方法. java 方法中的字符串最终变成乱码。
jsp页面中的字段:
<div class="span1">
<form:label cssClass="control-label" path="">
<spring:message code="web.messages.someMessage" />
</form:label>
<form:input cssClass="input-block-level" path="" id="articleId" />
</div>
<div class="span1">
<label> </label>
<button type="button" id="search-btn" class="btn" >
<spring:message code="web.messages.buttonMessage" />
</button>
</div>
脚本中的ajax:
$("#search-btn").on("click", function(e) {
e.preventDefault();
showDialog("${pageContext.request.contextPath}");
});
function showDialog(baseContext) {
var article = $('#articleId').val().replace(/\s+/g, "");
if (article) {
article = "?article=" + article;
}
$.ajax({
type : "GET",
url : "${pageContext.request.contextPath}/sync/getFilter"
+ article,
success : function(data) {
onClickTable();
}
});
}
这是java方法的一部分,其中值变成乱码:
@RequestMapping(value = "/getFilter", method = RequestMethod.GET)
public @ResponseBody ModelAndView getFilter(HttpServletRequest request) {
String article = (String) request.getParameter("article");
.
.
通过将信息放入 JSON 并像这样发送它来解决问题。
所做的更改:
脚本部分ajax jsp:
function showDialog(baseContext) {
var article = $('#articleId').val().replace(/\s+/g, "");
var data = {
"article": $('#articleId').val().replace(/\s+/g, ""),
// other keys and values
"lastKey": $('#lastValueId').val().replace(/\s+/g, "")
}
$.ajax({
type : "POST",
url : "${pageContext.request.contextPath}/sync/getFilter",
data: data,
success : function(data) {
onClickTable();
}
});
}
处理数据的java方法:
@RequestMapping(value = "/getFilter", method = RequestMethod.POST)
public @ResponseBody ModelAndView getFilter(SomeObject receivedData) {
String article = receivedData.getArticle();
// rest of the method
其中 SomeObject 是一个对象 包含我们在 的数据中收到 的值为他们设置和获取方法。
我的 jsp 页面中有几个输入字段,这些字段获取西里尔文输入,然后我按下一个按钮,尝试使用 ajax 发送到此 java 方法. java 方法中的字符串最终变成乱码。
jsp页面中的字段:
<div class="span1">
<form:label cssClass="control-label" path="">
<spring:message code="web.messages.someMessage" />
</form:label>
<form:input cssClass="input-block-level" path="" id="articleId" />
</div>
<div class="span1">
<label> </label>
<button type="button" id="search-btn" class="btn" >
<spring:message code="web.messages.buttonMessage" />
</button>
</div>
脚本中的ajax:
$("#search-btn").on("click", function(e) {
e.preventDefault();
showDialog("${pageContext.request.contextPath}");
});
function showDialog(baseContext) {
var article = $('#articleId').val().replace(/\s+/g, "");
if (article) {
article = "?article=" + article;
}
$.ajax({
type : "GET",
url : "${pageContext.request.contextPath}/sync/getFilter"
+ article,
success : function(data) {
onClickTable();
}
});
}
这是java方法的一部分,其中值变成乱码:
@RequestMapping(value = "/getFilter", method = RequestMethod.GET)
public @ResponseBody ModelAndView getFilter(HttpServletRequest request) {
String article = (String) request.getParameter("article");
.
.
通过将信息放入 JSON 并像这样发送它来解决问题。 所做的更改:
脚本部分ajax jsp:
function showDialog(baseContext) {
var article = $('#articleId').val().replace(/\s+/g, "");
var data = {
"article": $('#articleId').val().replace(/\s+/g, ""),
// other keys and values
"lastKey": $('#lastValueId').val().replace(/\s+/g, "")
}
$.ajax({
type : "POST",
url : "${pageContext.request.contextPath}/sync/getFilter",
data: data,
success : function(data) {
onClickTable();
}
});
}
处理数据的java方法:
@RequestMapping(value = "/getFilter", method = RequestMethod.POST)
public @ResponseBody ModelAndView getFilter(SomeObject receivedData) {
String article = receivedData.getArticle();
// rest of the method
其中 SomeObject 是一个对象 包含我们在 的数据中收到 的值为他们设置和获取方法。