如何在jsp的java函数中将Struts2属性标记作为参数传递?

如何在jsp的java函数中将Struts2属性标记作为参数传递?,java,jsp,struts2,Java,Jsp,Struts2,我在jsp的java函数中将Struts2属性标记作为参数传递时遇到问题。 我正在从jsp调用这样的java函数 <s:if test="%{DoSomething()}"> 谁能告诉我怎么做。我目不转睛地看着它,但什么也没找到。你不能将Struts2标记用于另一个Struts2标记,你可以使用表达式语言, <s:if test="%{DoSomething(userId)}"> 首先使用${userId}然后再使用${userId}很可能不需要像这样传入参数。您正试

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

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

谁能告诉我怎么做。我目不转睛地看着它,但什么也没找到。

你不能将Struts2标记用于另一个Struts2标记,你可以使用表达式语言,
<s:if test="%{DoSomething(userId)}">

首先使用${userId}

然后再使用${userId}

很可能不需要像这样传入参数。您正试图从action类调用DoSomething方法。您希望在action类中向该方法传递一个参数。用户ID必须已经存在于action类中,否则无法通过s:property标记获取它。您可以在action类的DoSomething方法中使用这个userId变量。

基本上,我只想在java函数中将s:property标记作为参数传递,如下所示,显示DoSomething方法。您的用户ID是什么类型的?公共布尔DoSomethingstring User{ifUser!=null{return true;}}}//这是一个简单的函数。我甚至删除了所有的逻辑,但仍然得到了空值1。提及带有@e.g.@IdreesHamayun的人时,他们会收到通知。2.编辑您的帖子,而不是在评论中发布代码。3.您还并没有回答有关userId属性类型的问题。但DoSomething不是一个函数,它是Java术语中某个对象的方法,它可能是一个动作bean。它不起作用。当我传递userId时,action类中的值为null,但当我在jsp中写入“”时,它完美地显示了userId的值。@IdreesHamayun那么你需要提供更多信息,最坏情况下你需要%{DoSomethinguserId},但这也取决于DoSomething是什么,DoSomething是一个简单的布尔函数,根据传递的用户ID返回true或false。我们在循环中调用这个函数。现在,正在为实体中的每个记录完美地调用DoSomething函数。当我尝试将s:property值作为参数传递时,问题就出现了。如果我传递一个简单的java字符串作为参数,它就会工作perfectly@IdreesHamayun:这是怎么回事?这根本不能回答您的问题。@AleksandrM我试图将struts2标记用于另一个struts2标记'
<s:if test="%{DoSomething(userId)}">