Задаване на вложено поле през стека с помощта на jQuery в Struts 2

Имам проблем с настройката на вложеното поле с помощта на jQuery с помощта на рамка Struts2.

Не мога да задам полето на ModelDriven обект myModel, ако този обект има поле на второ ниво.

Това е:

Не мога да задам полето като myModel.myObject.myField, но мога да задам myModel.myField.

Може ли някой да помогне и да каже как да настроя вложеното поле в модела?

За да бъде ясно:

Кодът по-долу работи:

<script>
    function myFunction(myVal) {
        $.getJSON('login/open', {
            myField : myVal
        }, function(data) {
            if(data.ajaxResponseCode == 0){
                $("#myButton").remove();
                $("#myId").html("id set to=" + data.idSet + '');
            };
            return false;
        });
    };
</script>

Кодът по-долу НЕ работи:

<script>
function myFunction(myVal) {
    $.getJSON('login/open', {
        myObject.myField : myVal
    }, function(data) {
        if(data.ajaxResponseCode == 0){
            $("#myButton").remove();
            $("#myId").html("id set to=" + data.idSet + '');
        };
        return false;
    });
};
</script>

Интересното е, че настройката на полето с JSP Struts тагове работи:

<s:textfield name="myObject.myField" />

person Marcus    schedule 12.07.2014    source източник
comment
Това не е начинът, по който JavaScript обектите работят, направете обекта правилно. Не е особено интересно, че ognl изразите работят по различен начин от JavaScript, но те са напълно различни.   -  person Dave Newton    schedule 12.07.2014


Отговори (1)


Ако използвате управлявано от модела действие и имплементиран ModelDriven интерфейс, трябва да се уверите, че стекът на прехващача е конфигуриран правилно за действието. Вижте този отговор за по-добро разбиране на конфигурацията на стека на прихващача.

Можете също да използвате devMode и да изследвате изключения, създадени от OGNL, за да проверите съобщенията за грешка. Вижте този отговор за по-добро обяснение и пример за използване на управляван от модел.

Ако имате всички необходими конфигурационни и Java обекти, достъпни за оценка на OGNL изрази, тогава можете да проверите Основи на OGNL, за да разберете по-добре работата на OGNL.

Когато извиквате функция на jQuery Ajax и използвате опции за предаване на параметри към действието Struts2, уверете се, че получавате имена на параметри в заявката преди params interceptor ги попълва в компонента за действие или модела.

Опитайте този код и го сменете, ако работи за вас

$.getJSON('login/open', {
    'myObject.myField' : myVal
}, function(data) {
person Roman C    schedule 12.07.2014