Получение нулевых значений в контроллере Spring MVC при отправке данных из jsp - PullRequest
0 голосов
/ 11 июня 2019

У меня есть форма jsp с полем ввода, объект домена с методами get / set и контроллер.Когда я отправляю форму, я получаю нулевые значения в контроллере.Метод "set" никогда не вызывается в объекте домена, когда я отправляю форму, но сам объект вызывается.

Order.jsp

<portlet:defineObjects />

<portlet:actionURL portletMode="view" var="createNewOrderURL">
<portlet:param name="action" value="createNewOrder" />
</portlet:actionURL>

<div>
<form:form name="form" method="post" commandName="refOrder" action="${createNewOrderURL}" id="createOrder">
    TestName : ${refOrder.name}<br/> <!-- here I get the correct value to display -->

    <form:input  path="referenceNum" />

    <input type="submit" value="Submit" />

</form:form>
</div>

Order.java

public class Order {
private String name = "Name1";
private String referenceNum;

public Order(){
    System.out.println("Inside Order.java");
    System.out.println(getReferenceNum());
}



 public Order(String name, String referenceNum) {
    this.name = name;
    this.referenceNum = referenceNum;
}


public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getReferenceNum() {
    return referenceNum;
}

public void setReferenceNum(String referenceNum) {
    this.referenceNum = referenceNum;
}

SalesOrderController.java

@RenderMapping 
public String defaultRender(RenderRequest request, RenderResponse response, Model model) throws SQLException, NamingException{

    model.addAttribute("refOrder",new Order());
    return "SalesOrderEntry";
}


@ActionMapping(params={"action=createNewOrder"})
public void addNewOrder(ActionRequest request, ActionResponse response, @ModelAttribute("refOrder") Order order)throws NamingException, SQLException{
    System.out.println("Inside addNewOrder method");
    System.out.println("New Order is --> "+order.toString());
    System.out.println("RefNum - "+order.getReferenceNum());
    System.out.println("request.getParameter is "+request.getParameter("referenceNum"));
}

Я получаю значение NULL для всех операторов печатив контроллере.Уже два дня пытаюсь это исправить, и я не могу найти, что не так.Буду очень признателен, если кто-нибудь поможет мне заставить это работать.

1 Ответ

2 голосов
/ 11 июня 2019

У вас есть следующее в вашем дескрипторе src / main / webapp / WEB-INF / liferay-portlet.xml?

<requires-namespaced-parameters>false</requires-namespaced-parameters>

Также вы можете взглянуть на Проект PortletMVC4Spring , который является преемником Spring Portlet MVC.Проект GitHub содержит архетипы, которые работают в Apache Pluto и Liferay Portal.Параметр конфигурации requires-namespaced-parameters удобно устанавливается в архетипах .

...