2015-03-04 3 views
-1

У меня проблема. Я представляю форму с использованием JSON(Jquery) и значение установки в переменной String в классе Java. Я хочу показать, что строка в поле предупреждения в JQuery. Вот мой код:Java String в JSON

$.ajax({ 
    url: "//action", 
    data: { 
     //datas...... 
    }, 
    contentType: "//", 
    dataType: "//", 
    success: function (msg) { 
     alert(msg.RegisterMessage); 
    }, 
    error: function (msg) {} 
}); 

ПРОБЛЕМА:

Я получаю уведомление от успеха части, но получение «неопределенный» каждый раз. Я хочу, чтобы строка в окне предупреждения была установлена ​​в классе java.

Вот мой Java-код:

public String RegisterAction(){ 
     RegisterMessage = processAction.RegisterAction(userbean); 
     return "success"; 
} 

RegistrMessage переменная содержит строку, не могу получить его :( .. Надеюсь, что вы можете помочь

+0

Вы "возвращаете" успех ";' и 'dataType:" json ",'. попробуйте с помощью 'dataType:" text ",' – Jai

+1

Почему вы ожидаете вернуть объект с свойством RegisterMessage, а не просто строку, которую вы вернули? –

+0

из java-кода вы возвращаете только строку, так как вы можете получить RegistrMessage? – 111

ответ

0

Хорошо, я нашел решение моей проблемы. В классе Java я сгенерировал метод getter и setter для этого String RegisterMessage, а остальная часть моего кода работала нормально.

Спасибо всем, кто помог.

0

Проблема заключается в том вы возвращаете строку обратно из вашего сервером, то есть: «успех», а в вашем методе с аргументом, который является msg, вы пытаетесь получить доступ к свойству с именем RegisterMessage, который не существует, и, следовательно, вы становитесь неопределенным.

Чтобы исправить это то вам нужно вернуть что-то подобное из вашего ответа сервера.

{ 
    "register_message": "Ya now ok" 
    } 

И теперь вы сможете получить доступ его в вашем методе в JS с помощью

msg.register_message.

Примечание:

Но убедитесь, что вы преобразовать эту строку в объект в ваших JS первый используя библиотеку как jsonify, как с сервера вы отправляете текстовое содержимое или только вместо изменения типа контента на сервере.

+0

Нет, ничего не работает. И для парней, которые голосовали за вопрос, вы знаете ответ? Поделитесь правильным ответом для других, таких как я, а затем голосуйте за вопрос. Если вы не знаете ответы, не проголосуйте на вопрос – Sunny

+0

Какая ошибка у вас есть?И опубликуйте, что вы сейчас изменили в коде – cafebabe1991

+0

. Я выбрал лучший ответ на вопрос, см. Выше. оно работает – Sunny

1

Если вы возвращаете строку. Ваш код должен быть таким, чтобы отображать ваше сообщение об успешном завершении. success: function (msg) { alert(msg); }

Попробуйте это, это может вам помочь. Вы возвращаете строку и ожидаете объект.

0

От кода Java вам необходимо вернуть строку в формате JSON как:

{ "RegisterMessage": "успех"}

Смежные вопросы