2014-10-31 61 views
1

我想删除项目中选择的行,我使用Hibernate和Struts。Struts2 CRUD删除不工作

<a href="DeletePublication?Id=<s:property value="Id"/>"><img 
        src="${pageContext.request.contextPath}/img/delete.png" width=20px 
        height=20px></a> 

这是我要点击的链接!在struts.xml行动被定义为:

<action name="DeletePublication" class="de.nak.library.action.PublicationAction" 
     method="delete"> 
     <result type="redirect">ShowPublicationList.action</result> 
     <result type="chain" name="input">ShowPublicationList</result> 
    </action> 

Action类的样子:

public String delete() { 
    publication = publicationService.loadPublication(publicationId); 
    if (publication != null) { 
     publicationService.deletePublication(publication); 
    } 
    return SUCCESS; 

如果我点击链接,什么也没有发生!我试图在delete方法中设置一个断点,我发现它甚至没有被调用。请帮忙!

回答

1

更改这个在struts.xml

<constant name="struts.devMode" value="true" /> 

这将开启一个开发模式,您可以在控制台上看到更多的日志信息。你可能没有吸气剂和固化剂的属性。在属性中缺少"

<s:a namespace="onthepackage" action="DeletePublication"><s:param name="Id" value="%{Id}"/><img 
    src="<s:url value='/img/delete.png'/>" width="20px" 
    height="20px"> 
</s:a> 
+0

谢谢你的回答!我打开devMode,仍然没有有用的错误!我试过你的代码示例,不幸的是没有效果:(网址是正确的,但方法仍然没有调用,并且有getter和setters ... – hypePG 2014-10-31 21:58:02

+0

发布一个完整的'struts.xml'。 – 2014-10-31 22:28:39

+0

谢谢!错误,这是一个设置错误:(所以愚蠢的错误! – hypePG 2014-11-02 13:21:43

0

而是采用直接<a href="">,使用<s:url>才能到DeletePublication行动。然后用<s:url>的参考<a href='<s:property value="#ref"/>'