如何调用在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(); 
});