У меня есть файл с именем вида JSP example.jsp и когда нажать на кнопку ниже метод JQuery вызывается:
$(document).ready(function() {
$("#a_button").click(function() {
var json_model== {
field1 : $("#a_textarea1").val(),
field2 : $("#a_textarea2").val(),
field3 : $("#a_textarea3").val(),
};
$.getJSON('AnAction', {
model : json_model
}, function(jsonResponse) {
alert('jsonResponse here');
});
});
});
А вот мой класс действия:
public class ActionClass implements Action {
private Model model;
@Override
public String execute() throws Exception {return null;}
public String actionMethod() {
System.out.println("Its Here");
System.out.println(model.getField1()+" "+model.getField2()+" "+model.getField3()+" ");
return SUCCESS;
}
public Model getModel() {
return model;
}
public void setModel(Model model) {
this.model = model;
}
}
класс
А вот модель:
public class Model {
private String field1;
private String field2;
private String field3;
public Model(String field1,String field2, String field3) {
super();
this.field1 = field1;
this.field2 = field2;
this.field3 = field3;
}
public String getField1() {
return field1;
}
public void setField1(String field1) {
this.field1 = field1;
}
public String getField2() {
return field2;
}
public void setResult(String field2) {
this.field2 = field2;
}
public String getField3() {
return field3;
}
public void setField3(String field3) {
this.field3 = field3;
}
}
Мой struts.xml:
<action name="AnAction" class="controller.ActionClass" method="actionMethod">
<result type="json">/example.jsp</result>
</action>
Когда я нажимаю кнопку, мой рабочий вызов работает, и я вижу Его здесь текст на боковой панели сервера. Но вызов действия не отображает объект Model.I означает, что «model» имеет значение null при вызове действия. Однако, когда я перемещаю поле1, поле2 и поле3 в ActionClass, как показано ниже, работают. Но, конечно, я хочу только модельный объект внутри Action Class. Как мне это сделать. Спасибо за все советы.
//THIS IS WORKED VERSION OF ACTION CLASS
public class ActionClass implements Action {
private String field1;
private String field2;
private String field3;
@Override
public String execute() throws Exception {return null;}
public String actionMethod() {
System.out.println("Its Here");
System.out.println(field1+" "+field2+" "+field3+" ");
return SUCCESS;
}
public String getField1() {
return field1;
}
public void setField1(String field1) {
this.field1 = field1;
}
public String getField2() {
return field2;
}
public void setResult(String field2) {
this.field2 = field2;
}
public String getField3() {
return field3;
}
public void setField3(String field3) {
this.field3 = field3;
}
}
//AND MY JQUERY METHOD WHICH IS COMPATIBLE WITH ABOVE
$(document).ready(function() {
$("#a_button").click(function() {
$.getJSON('AnAction', {
field1 : $("#a_textarea1").val(),
field2 : $("#a_textarea2").val(),
field3 : $("#a_textarea3").val()
}, function(jsonResponse) {
alert('jsonResponse here');
});
});
});
Благодарим за отзыв, но я не понимаю, где я должен создать экземпляр объекта модели в действии? –
Я создал экземпляр встроенного в этот ответ, где вы определили свою собственность в классе действий. –
Спасибо, Роман, это работает. Также я предлагаю посмотреть ниже сообщение –