【问题标题】:struts2 confirm box with actionstruts2 带有动作的确认框
【发布时间】:2014-04-17 16:29:15
【问题描述】:

当我在确认框中单击“确定”时,我试图调用 struts2 操作。我有一个来自 jsp 的 id,我想将它传递给操作。我尝试了几种方法都没有成功。

一件事是使用href:

 <s:url action="disable" var="urlTag">
     <s:param name="id"><s:property value="id"/></s:param>
 </s:url>

window.location.href="{urlTag}";

我也尝试过使用 ajax

        $.ajax( {  
            type: "POST",        
            url: "%{urlTag}",  //will this declaration of action work?   
            dataType: "json",  
            contentType: "application/json; charset=utf-8",  
            data: "",  
            success: function() {  
                alert("success");    
            }  
       });  

我是新手,真的很想通过它。感谢您的任何帮助!

【问题讨论】:

  • 不,它不起作用,因为 OGNL 表达式仅在 struts 标签的属性中进行评估。但是你可以试试 JSP EL。

标签: java javascript ajax jsp struts2


【解决方案1】:

您可以通过以下方式实现。

 <s:url id="yourActionId" action="yourAction">
    <s:param name="param1" value="param1Value"/>
    <s:param name="param2" value="param2Value"/>
 </s:url> 
 <s:a href="%{yourActionId}" onclick = "return confirmBox();"><b>Save</b></s:a>

& 你的 javascript 函数应该如下所示。

function confirmBox() {
   var answer;
   answer = window.confirm("Do you really want to perform this action");
   if (answer == true) {
      return true;
   } else {
      return false;
   }
}

我们在这里所做的是,在 s:url 标签中,我们给出了使用参数执行的操作并给它一个 id。该 id 被传递给 s:a 标记和单击 s:a 链接时,我们正在调用一个 java 脚本函数,该函数将打开一个确认框并返回 true,如果您按下 OK 并调用操作。如果您按取消,它将返回 false 并且不会调用操作。希望这会对你有所帮助。

【讨论】:

  • 谢谢 Pravin,不过,我需要一个按钮而不是链接。
  • 您可以使用
    来实现,如果您不想从用户那里获取任何输入,请在 标记中传递您的参数值并调用在 的 onsubmit 或 的 onclick 上使用上述 confirmBox() 方法。
  • 感谢 Pravin,我通过另一种方式让我的代码工作,即在单击 OK 后将新值传递给 jsp(使用隐藏字段)并使用另一个按钮来调用操作。
【解决方案2】:

让您的代码使用 Struts 标签:

window.location.href = "<s:property value='%{#urlTag}' />";

$.ajax( {  
       type: "POST",        
        url: "<s:property value='%{#urlTag}' />",  

也就是说,我并不是说这就是你所需要的。你确定你需要做什么?得到 ?邮政 ? AJAX 调用,什么?

【讨论】:

  • 谢谢,我想我不需要使用 ajax。我只需要调用一个动作并将 id 传递给动作。
猜你喜欢
  • 2016-02-19
  • 1970-01-01
  • 2021-07-11
  • 1970-01-01
  • 2012-03-16
  • 1970-01-01
  • 1970-01-01
  • 2015-06-26
  • 2012-12-18
相关资源
最近更新 更多