【问题标题】:Call a method in action class from a jsp page in struts2从struts2中的jsp页面调用action类中的方法
【发布时间】:2013-06-13 19:38:09
【问题描述】:

我编写了以下代码将变量 artpsMstId 传递给 javascript 函数,然后根据该变量更新存储的记录:

在 JSP 中:

    <td>
     <a href="javascript:fnUpdate('<s:property value="artpsMstId" />');">testupdate</a>
    </td>

<script type="text/javascript">
function fnUpdate(id)
{
    <s:url action='updateServiceDetails'></s:url>
    document.forms[0].artpsMstId.value=id;
    document.forms[0].submit();
}
</script>

在 struts.xml 中:

<action name="updateServiceDetails" class="com.stp.portal.view.SearchServicePortlet" method="updateServiceDetails">
            <result name="success">/WEB-INF/view/ServiceSubmitPage.jsp</result>         
        </action>

我在SearchServicePortlet.java 中定义了函数updateServiceDetails。 但是流量没有到达SearchServicePortlet.java。如果有人可以帮助我,我将不胜感激...谢谢

----已编辑-----

这就是我想要做的事情

<s:form action="updateServiceDetails" method="POST" theme="simple" >
<tr>
    <td>
        FirstName
    </td>
    <td>
        LastName
    </td>
    <td>
        Edit
    </td>
</tr>
<s:iterator value="resultList" >
<tr>
    <td align="center">
        <s:textfield name="firstName" />
    </td>
    <td align="center">
        <s:textfield name="lastName" />
    </td>
    <td>
        Edit
    </td>
    <td align="center">
        <a href="javascript:fnUpdate('<s:property value="artpsMstId" />');">testupdate</a>
    </td>
</tr>
</s:iterator>
</s:form>

上面的代码显示了一个包含名字和姓氏的列表,每行都有一个编辑选项。现在我想在 javascript 中调用函数 fnUpdate() 以便 我可以分别编辑和保存每一行。这是我基本上需要做的。

【问题讨论】:

  • 不明白为什么你的JS函数中间有个URL标签?
  • 有什么表格可以提交吗?
  • 感谢 Dave 的回复,能否告诉我如何从 JS 函数中调用 SearchServicePortlet.java 中的 updateServiceDetails() 方法?
  • 是的,Alexndr,有表格要提交
  • 设置表单的“action”属性?在不知道您实际尝试做什么的情况下,除了一般性建议之外很难提供任何东西。

标签: jsp struts2 struts


【解决方案1】:

而不是在整个表格上使用表格,只需使用单独的表格并单击表格行中的链接,调用 javascript 函数来提交该单独的表格,

试试下面的代码, 在jsp中,

<form name="updateServiceDetailForm">
<input type="hidden" name="artpsMstId"/>
</form>
<table>
<tr>
    <td>
        FirstName
    </td>
    <td>
        LastName
    </td>
    <td>
        Edit
    </td>
</tr>
<s:iterator value="resultList" >
<tr>
    <td align="center">
        <s:textfield name="firstName" />
    </td>
    <td align="center">
        <s:textfield name="lastName" />
    </td>
    <td>
        Edit
    </td>
    <td align="center">
        <a href="javascript:fnUpdate('%{artpsMstId}');">testupdate</a>
    </td>
</tr>
</table>

在 JavaScript 中,

function fnUpdate(artpsMstId) {
    document.forms.updateServiceDetailForm.action = "updateServiceDetails.action";
    document.forms.updateServiceDetailForm.method = "post";
    document.forms.updateServiceDetailForm.artpsMstId.value = artpsMstId;
    document.forms.updateServiceDetailForm.submit();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    相关资源
    最近更新 更多