gpt4 book ai didi

struts2 - struts2 迭代器标签中包含 contains

转载 作者:行者123 更新时间:2023-12-02 10:00:23 24 4
gpt4 key购买 nike

我有以下代码,但似乎不起作用。我不明白为什么这行不通。

<s:iterator value=%{questions} id="question">
<s:if test='%{incorrectQs.contains("#question.questionId")}'>
Print something here
</s:if>
</s:iterator>

在上面的代码中,基本上我在操作类中有一个名为 getQuestions 的方法。该列表包含 Exam 类的对象,该类具有获取/设置 QuestionId。我还有不正确的 Qs 列表,其中包含字符串。我正在检查不正确的Qs是否包含questionId。如果是的话我想打印一些文本。尽管上面的代码不起作用,但下面的代码随机可以正常工作。有时有效,有时无效...:(

<s:iterator value=%{questions}>
<s:if test='%{incorrectQs.contains("${questionId}")}'>
Print something here
</s:if>
</s:iterator>

任何人都可以对此提供一些见解吗?

最佳答案

我不确定你的 Action 类是什么样的,但你可以尝试这样的事情。当您位于 s:iterator 标记内时,我认为每个 %{foo} 表达式将尝试访问您正在迭代的特定实例(问题,而不是列表)问题)。

注意:可能有一种方法使用 #s:iterator 标记内引用父对象。我只是还没有这样做,所以不能确定它是否对您有帮助。

public class ActionClass ... {

private List<Question> mQuestions;
private Set<Integer> mIncorrectQuestions;

public String execute() {
// build/read questions, populate incorrect questions, etc...
return SUCCESS;
}

public List<Question> getQuestions() {
return mQuestions;
}

// does not need to be an inner class
public class Questions {

private int mQuestionId;

public int getQuestionId() {
return mQuestionId;
}

public boolean getIsIncorrect() {
return mIncorrectQuestions.contains(mQuestionId);
}
}

然后在您的 JSP 中:

<s:iterator value='%{questions}'>
<s:if test='%{isIncorrect}'>
Question <s:property value='${questionId}'/> is Incorrect!
</s:if>
</s:iterator>

关于struts2 - struts2 迭代器标签中包含 contains,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1236627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com