如果你想处理只有一个动作:
的Portlet
@Override
public void processAction(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, PortletException
{
// TODO Auto-generated method stub
super.processAction(actionRequest, actionResponse);
}
JSP
<form action="<portlet:actionURL />" method="post">
<aui:button type="submit" value="addDetails" />
</form>
如果你想要一个以上的操作方法:
public void myAction(ActionRequest request, ActionResponse response)
{
Long id = ParamUtil.getLong(request, "myParam");
// TODO
}
JSP
<portlet:actionURL name="myAction" var="myActionVar">
<portlet:param name="myParam" value="${currentElement.id}"></portlet:param>
</portlet:actionURL>
<a href="${myActionVar}">Click Me!</a>
但你可能会做:
的Portlet
@Override
public void serveResource(ResourceRequest request, ResourceResponse response) throws IOException
{
String action = request.getParameter("action");
if(action.equalsIgnoreCase("myAction")){
// handle AJAX call
}
}
JSP
<portlet:resourceURL var="resourceUrl" />
<input id="resourceURL" type="hidden" value="${resourceUrl}" />
的JavaScript
$.post($('#resourceURL').val(),{
action : 'myAction'
}).done(function(result){
alert('Action completed successfully!')
});
perp:所以在我的actionURL上面: name是addDetails,所以我的函数名应该是addDetails,对不对? –
2013-03-11 06:57:32
@cyk:你明白了。 – perp 2013-03-11 08:13:38
谢谢!清除我的疑惑 – 2013-03-11 08:41:28