如何调用在JSP HREF当点击的方法(使用portlet的JSR 286和Spring MVC 3)
问题描述:
我新的portlet的,我有一个visit.jsp页面与href标记如下:如何调用在JSP HREF当点击的方法(使用portlet的JSR 286和Spring MVC 3)
<a href="www.randomUrl.com">Visit ....</a>
基本上我的要求是我只需要在VisitController.java
中调用一个名为methodVisit
的方法,当我点击href并返回visit.jsp。 然后在我methodVisit
添加一个名为isVisited属性到我的模型,并回到我visit.jsp 页面,让我的方法将有以下行我猜:
VisitController.java
public .. methodVisit(...){
model.addAttribute("isVisited", isVisited));
}
然后当我在我的visit.jsp页返回我可以用这个检查:
<c:if test="${isVisited}">
Then display this line when href is clicked from visit.jsp page
</c:if>
我已经看到了下面的例子是使用提交按钮时:
<portlet:actionURL var="returnToSearchUrl" >
<portlet:param name="ActController" value="returnToSearch" />
</portlet:actionURL>
<input type="button" class="button" value='<spring:message code="button.returSearch" />' onclick="self.location='${returnToSearchUrl}'"/>
@ActionMapping(params = "ActController=returnToSearch")
public void returnToSearch(){
......
}
然而没有例子,当使用href之一,任何建议如何使用href请做?
答
试试这个:
<a href = "${pageContext.request.contextPath}/methodVisit">Click here!</a>
@Controller
@RequestMapping(value ="/pathtoyourproject")
public class VisitController{
@RequestMapping(value = "/methodVisit")
public ModelAndView methodVisit(...){
ModelAndView mav = new ModelAndVew();
...
mav.addAttribute("isVisited", isVisited);
...
mav.setViewName("visit.jsp");
return mav;
}
答
为什么不使用Ajax,一旦Ajax请求完成更新链接?
var visitLink = $("a:contains('Visit')");
$(visitLink).click(function(event) {
$.ajax({
url:"www.randomUrl.com",
success: function() {
$(visitLink).hide();
}
});
event.preventDefault();
});