在Liferay中调用两次@ActionMapping方法

时间:2016-09-23 03:09:14

标签: java jsp spring-mvc action-mapping liferay-7

我正在开发一个小项目,我有一个jsp,其中有一个表单上有动作。当我单击该按钮时,它会成功调用动作映射方法。在那个方法中,我调用一个db,它在一些30k记录上选择在DB上插入。问题是在运行db代码大约10-20秒后,再次调用动作映射方法。我不知道它的原因。

我想要实现的是,Actionmapping方法应该只调用一次,因为如果调用两次则违反完整性约束。我不知道liferay表现不同的原因。

我还想知道是否可以将db代码与actionmapping方法分开,以便在单击按钮时调用该方法,然后通过给出消息将其返回到jsp" In Progress&# 34 ;. 谁能为我提供一些关于此的想法。感谢!!!!

我正在使用带有spring mvc框架的liferay 7 GA2

jsp文件代码:

<portlet:actionURL var="InvokeFileURL">
<portlet:param name="action" value="callaction"/>
</portlet:actionURL>

    <aui:form action="<%= InvokeFileURL %>" method="post">
    <div><b>Files Selected For Invoke</b></div>
    <div style="width:1180px;height:670px;border:1px solid #000; margin-left:30px;max-height: 700px; overflow:auto;" id="invokefiles" > 
    </div>
    <br/>
    <p style= "text-align:right;margin-right:10px" ><aui:button name="Invoke" value="Invoke" type="submit" /></p>
    </aui:form>

控制器代码

@ActionMapping(params = "action=callaction" )
        public void invokerequest(ActionRequest request, ActionResponse response)
                throws Exception {
            _log.info("Invoke called"); //Called Twice
             DBParserJDBC.DBParser(); //called twice
             //Function to call DB ( its a long process)
            response.setRenderParameter("action", "success");

        }

        @RenderMapping(params = "action=success")
        public String viewSuccess() {

            _log.info("#############Calling viewSuccess###########");

            return "view";

        }

0 个答案:

没有答案