Я новичок в Spring MVC 4 и JQuery, я должен создать проект для моей школы, в котором есть JSP Снимок экрана страницы JSP , как показано на прилагаемом рисунке
На странице jsp есть два набора текстовой области в двух разных строках, когда пользователь вводит некоторые данные в «DataSet1 textArea» и нажимает кнопку «Process1», затем выполняется контроллер ajax, и модель обновляется, чтобы показать результат в ResultSet1.textarea, то же самое должно произойти в строке ниже (может ли здесь быть сделан новый вызов ajax без вмешательства textAreas строки 1?).Мой вопрос заключается в том, какой подход к проектированию лучше всего подходит в этом случае?
Я делюсь своим кодом и проблемами, с которыми я сталкиваюсь при использовании текущего подхода к проектированию: Вот код моего контроллера:
@RequestMapping(value = "/tokenizer", method = RequestMethod.GET)
public String goTokenize(Model model) {
TokenData data = new TokenData();
model.addAttribute("tokenData", data);
return "tokenizer";
}
@RequestMapping(value = "/tokenizer", method = RequestMethod.POST)
public String setTokenize(@Valid @ModelAttribute TokenData tokenData, Errors errors) {
if (errors.hasErrors()) {
return "tokenizer";
}
return "tokenizer";
}
Вот мой код js, с помощью которого я фиксирую нажатие кнопки
<script type="text/javascript">
$(document).ready(function() {
//For button Process
$('#json').click(function(event) {
$.ajax({
type : 'POST',
contentType : "application/json",
url : 'tokenizer',
data : JSON.stringify($("#textarea").val()),
dataType : 'json',
success : function(result) {
$('#result').html(result.text);
},
error : function(e) {
console.log('Error: ' + e)
alert('Error: ' + e);
}
});
});
//For button Process2
$('#json1').click(function(event) {
$.ajax({
type : 'POST',
contentType : "application/json",
url : 'tokenizer',
data : JSON.stringify($("#textareanew").val()),
dataType : 'json',
success : function(result) {
console.log("success--"+result)
$('#textarea').val(result.text);
},
error : function(e) {
console.log('Error: ' + e)
alert('Error: ' + e);
}
});
});
});
</script>
Вот моя модель Объект
public class TokenData {
@NotEmpty
private String tokenData;
private String resultData;
@NotEmpty
private String tokenDataNew;
public String getTokenDataNew() {
return tokenDataNew;
}
public void setTokenDataNew(String tokenDataNew) {
this.tokenDataNew = tokenDataNew;
}
public String getResultDataNew() {
return resultDataNew;
}
public void setResultDataNew(String resultDataNew) {
this.resultDataNew = resultDataNew;
}
private String resultDataNew;
public String getResultData() {
return resultData;
}
public void setResultData(String resultData) {
this.resultData = resultData;
}
public String getTokenData() {
return tokenData;
}
public void setTokenData(String tokenData) {
this.tokenData = tokenData;
}
Проблемы, с которыми я сталкиваюсь:
- Я использую тег пружинной формы вНа странице jsp приведен фрагмент кода,
form:form modelAttribute="tokenData" id="formx" action="${formxyz}">
если я не использую тег формы в jsp, то привязка данных и проверка (jsr 303) не работают
2. Поскольку я использую тег формы, следовательно, когда я нажимаюкнопки (которые имеют тип «отправить» как тип «кнопки», не работают с привязкой данных), затем, когда я нажимаю на любую кнопку, все данные формы передаются контроллеру, и для всех полей формы происходит проверка, а также другая обработка.
У меня вопрос, есть ли способ, которым я могу сделать несколько вызовов AJAX от нескольких кнопок на странице JSP, с работающей проверкой JSR 303?
Заранее спасибо за помощь.