【问题标题】:How to pass Struts2 property tag as parameter in java function in the jsp?如何在jsp中的java函数中将Struts2属性标签作为参数传递?
【发布时间】:2014-10-24 18:58:17
【问题描述】:

我在将 Struts2 属性标记作为参数传递给 jsp 中的 java 函数时遇到问题。 我正在从jsp调用这样的java函数,

<s:if test="%{DoSomething()}">

DoSomething() 函数在 Action 类中,正在为迭代器中的每条记录调用。

问题是我想在函数DoSomething中将这个属性&lt;s:property value="userId"/&gt;作为java字符串传递如下。

<s:if test="%{DoSomething("<s:property value="userId">/)}">

谁能指导我如何做到这一点。我看了看,但没有找到任何东西。

【问题讨论】:

  • 基本上我只想将“s:property”标签作为参数传递给像这样的java函数 /)}">
  • 显示您的DoSomething 方法。你的userId是什么类型的?
  • public boolean DoSomething(string User){ if(User!= null){ return true;} } //这是一个简单的函数。我什至删除了所有逻辑,但我仍然得到 NULL
  • 1.用@(例如@IdreesHamayun)提及人们,他们会收到通知。 2. 编辑您的帖子,而不是在 cmets 中发布代码。 3.您还没有回答userId属性的类型。
  • 但是DoSomething() 不是函数,它是Java术语中某个对象的方法,它可能是一个动作bean。

标签: java jsp struts2


【解决方案1】:

你不能使用Struts2标签到另一个Struts2标签,你可以使用表达式语言, 先用&lt;s:set name="userId" value="userId" /&gt;再用${userId}

【讨论】:

  • @IdreesHamayun:这个是如何工作的?这根本无法回答您的问题。
  • @AleksandrM 我试图将 struts2 标签 '' 用于另一个 struts2 标签 '' 设置值,然后我在 java scriptless 跨度>
【解决方案2】:
<s:if test="%{DoSomething(userId)}">

【讨论】:

  • 它不起作用。当我传递“userId”时,我在动作类中得到了 null,但是当我在 jsp 中编写 '' 时,它完美地显示了 UserId 的值。
  • @IdreesHamayun 那你需要提供更多信息,最坏的情况是你需要%{DoSomething(#userId)},但这也取决于DoSomething是什么,你没有说明。
  • DoSomething 是一个简单的布尔函数,根据传递的 userId 返回 true 或 false。
  • 我们在循环中调用这个函数'" "。现在正在为实体中的每条记录完美地调用函数 DoSomething()。当我尝试将 s:property 值作为参数传递时,问题就来了。如果我将一个简单的 java 字符串作为参数传递,它可以完美地工作
【解决方案3】:

您很可能不需要像这样传递参数。您正在尝试从您的操作类中调用方法 DoSomething。您想在您的操作类中将参数传递给此方法。 userId 必须已经存在于您的操作类中,否则您无法通过 s:property 标记获取它。你可以在你的动作类的 DoSomething 方法中使用这个 userId 变量。

【讨论】:

    猜你喜欢
    • 2023-02-03
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 2020-04-21
    相关资源
    最近更新 更多