一个jsp中有两个操作URL

我只想知道,如果我可以<portlet:actionURL

var="wakeup">在一个jsp中包含两个动作URL。将根据填充的输入和JS提交此表单的方式调用该方法。例:

function startActions() {

if (document.getElementById("shut").checked ||

document.getElementById("reboot").checked) {

document.getElementById("shutdownRebootForm").submit();

}

if (document.getElementById("wake").checked) {

document.getElementById("wakeUpForm").submit();

}

}

<portlet:actionURL var="shutdownReboot">

<portlet:param name="action" value="shutdown-reboot" />

</portlet:actionURL>

<form id="shutdownRebootForm" method="post" action="${shutdownReboot}">

//some HTML code

</form>

<portlet:actionURL var="wakeup">

<portlet:param name="wakeaction" value="wakeup" />

</portlet:actionURL>

<form id="wakeUpForm" method="post" action="${wakeup}">

//some HTML code

</form>

我正在使用spring MVC …这可能实现吗?它会按预期工作吗?

回答:

您可以在portlet中进行任意数量的操作。将每个方法实现为接收两个参数的方法:an ActionRequest和an

ActionResponse。可以根据需要命名该方法,但请注意,该方法名称必须与指向该方法的URL名称匹配。

因此,基于合适的JSP,操作和脚本结构,您可以在单个portlet中放置任意数量的actionURL。重要的是将nameURL标记上指定的属性的值与方法的名称匹配。

如果要指定名称属性,则需要在侦听器类中实现单独的操作方法。

瞧,您的actionURL如下所示:

<portlet:actionURL var="shutdownRebootURL" name="shutdownReboot">

<portlet:param name="action" value="shutdown-reboot" />

</portlet:actionURL>

<portlet:actionURL var="wakeupURL" name="wakeup">

<portlet:param name="wakeaction" value="wakeup" />

</portlet:actionURL>

因此,您的行动策略应包含以下方法:

public void shutdownReboot(ActionRequest actionRequest, ActionResponse actionResponse)

throws IOException, PortletException {

// Your shutdownReboot logic goes here

}

public void wakeup(ActionRequest actionRequest, ActionResponse actionResponse)

throws IOException, PortletException {

// Your wakeup logic goes here

}

但是,并不需要紧迫地放置两个form /

actionURLs,您可以通过在侦听器类中实现一个基于方法值进行过滤的action方法来实现您的要求。在每个动作上,该参数将标识已调用了哪个动作。

考虑以下示例:

<form action="<portlet:actionURL />" method="post">

<input type="hidden" name="action" id="action" value="" />

<table>

<tr>

<td>shutdown checkbox</td>

<td>reboot checkbox</td>

<td>wakeup checkbox</td>

</tr>

<tr>

<td>

<!-- show specific button based on checkbox checked -->

<button type="submit" id="shutdownReboot" onclick="startActions('shutdownReboot');">Shutdown / Reboot</button>

<button type="submit" id="wakeup" onclick="startActions('wakeup');">Wakeup</button>

</td>

</tr>

</table>

</form>

function startActions(action) {

document.getElementById('action').value = action;

/* set other required parameters */

}

String action = "";

public void processAction(ActionRequest actionRequest, ActionResponse actionResponse)

throws IOException, PortletException {

if(actionRequest.getParameter("action") != null && actionRequest.getParameter("action") != ""){

action = actionRequest.getParameter(action);

}

if(action.equals("shutdownReboot")){

// shutdown-reboot logic

}else if(action.equals("wakeup")){

// wakeup logic

}else{

// default logic

}

}

以上是 一个jsp中有两个操作URL 的全部内容, 来源链接: utcz.com/qa/404690.html

回到顶部