【问题标题】:Pass a parameter with struts 2 action使用 struts 2 动作传递参数
【发布时间】:2023-03-18 10:40:02
【问题描述】:

如何使用 struts 2 操作传递参数?

这是我的代码。

<s:form>

    <s:select name="menuItem" list="menuItems" listKey="menuItemID"
        listValue="menuItemName" headerKey="" headerValue="--MenuItems--"
        cssClass="selectbox_bg2" id="select"
        onchange="handleChange(this.value)" />

    <s:textfield name="select_value" id="select_value" />

</s:form>

<script type="text/javascript">

function handleChange(value) {

    window.location = "callMyAction?ValueToSubmit=" + value;

}

</script>

我的问题是如何在我的操作类中获取此参数(值)。 并传递一个参数返回jsp页面。

谢谢..

【问题讨论】:

  • 你试过request.getParameter("ValueToSubmit"); 吗?
  • 这不是一个 serverlet 或 jsp.. 使用 struts.xml 将动作转发到动作类..
  • 我可以在你的标题中读到这一点。所以你是说在 Struts 2 Action 中,你不能使用 request.getParameter("..")
  • 这不是struts 2 mvc架构的常见做法..
  • 此表单提交什么操作?

标签: struts2 parameter-passing struts-action


【解决方案1】:

1 只需使用公共 getter 和 setter 在您的操作类中创建“valueToSubmit”变量

public MyAction extends ActionSupport {

  private BigDecimal valueToSubmit;

  public String execute{
    ... some code.....
  }

  public BigDecimal getValueTOoubmit(){
    return valueToSubmit;
  }

  public void setValueToSubmit(BigDecimal valueToSubmit){
    this.valueToSubmit = valueToSubmit;
  }
}

Struts2 ParametersInterceptor会从request中获取参数值并自动设置为action parameer。

2 要在动作结果jsp页面中读取这个参数,只需使用一些struts标签

  <s:property value="valueToSubmit"/>, 
  <s:textfield name="valueToSubmit"/>, 
  etc..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-14
    • 2014-02-12
    • 2013-09-15
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    相关资源
    最近更新 更多