0

ユーザー入力を取得するだけのポートレットを Spring で作成する必要があります。まず、コントローラーの render メソッドでカスタム オブジェクトを Model に配置します。jsp ファイルでは、このオブジェクトにアクセスでき、フォームでオブジェクトのパラメーターを設定したいと考えています。(<form:form ...>値の設定に使用します)。

@ModelAttribute送信ボタンの後、要求されたメソッドとパラメーターを使用してオブジェクトを取得したいと思います。ただし、オブジェクトのパラメーターは変更されておらず、null です。オブジェクトをモデルに追加する前にそれらのいずれかを設定すると、送信ボタンの後にこの値が取得されますが、変更できません。リクエストされたメソッドには注釈が付けられています@ActionMapping(params = "action=actionName")

これはコントローラーです:

@Controller(value = "SpringMVCController")
@RequestMapping("VIEW")
public class SpringMVCController {


    @RenderMapping
    public String handleRenderRequest(RenderRequest request, RenderResponse response, Model model){
        model.addAttribute("reservation", new Reservation());
        return "defaultPage";
    }


    @ActionMapping(params = "action=addReservation") 
     public void addReservation(@ModelAttribute("reservation") Reservation reservation, BindingResult result,
             ActionRequest request, ActionResponse response) {

        System.out.println(reservation.getUrl());
     }

}

これはjspです:

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>



<portlet:defineObjects/>

<portlet:actionURL var="addReservationURL">
 <portlet:param name="action" value="addReservation"></portlet:param>
</portlet:actionURL>


<form:form method="POST" modelAttribute="reservation" action="${addReservationURL}">
    <table>
        <tr>
            <td>From where(URL): </td>
            <td><form:input path="url"/></td>
        </tr>
        <tr>
            <td><input type="submit" value="OK" /></td>
        </tr>
    </table>
</form:form>
4

1 に答える 1

0

小さな春のポートレットの例を試してみました。私のフォームも送信されませんでしたが、 Spring MV Portlet ActionMapping が機能していないことがわかりました

次に、春のバージョンを 3.2.3.RELEASE に変更しましたが、これは効果がなく、フォームはまだ送信されていません。その後、Springフォームタグを純粋なHTMLフォームタグに変更したところ、すべてうまくいきました。

<form method="post" action="${url}">
于 2013-11-13T22:33:52.233 に答える