同じEL式${taskId}
は、異なる場所で2つの異なる値を示します。不一致の表現言語の振る舞い、同じ表現の異なる値
私はMongoDBとObject-Mapping(もちろんJava/JSP/etc)用のMorphiaと一緒にStripesフレームワークを使用しています。次のJSP /式言語コード使用
:
<c:forEach items="${actionBean.tasks}" var="listTask">
<c:set var="taskId" scope="page" value="${listTask.id}"/>
<s:form method="post" beanclass="action.TaskActionBean">
${taskId}<s:hidden name="task.id" value="${taskId}"/>
<s:submit name="promoteTask" value="Up" />
</s:form>
</c:forEach>
は、次の生成されたコードを与える:あなたは$を見ることができるように、{のtaskId}は、4ef99b730364de7ec70dbd68
、その後4ef99b6c0364de7ec70dbd67
をプリントアウトされ
<form method="post" action="/scrumyogi/">
4ef99b730364de7ec70dbd68
<input type="hidden" value="4ef99b6c0364de7ec70dbd67" name="task.id">
<input type="submit" value="Up" name="promoteTask">
<div style="display: none;">
<input type="hidden" value="NPNEJw6tUWfRBXf-vVOLTw==" name="_sourcePage">
<input type="hidden" value="XbfUDiSHGrU=" name="__fp">
</div>
</form>
ました私には意味がない、私は同じ値を印刷する$ {taskId}が必要4ef99b730364de7ec70dbd68
は正しいものです。
これを引き起こす可能性のある既知の問題はありますか?
EDIT:実際の問題は、隠れたフォームタグ内の$ {taskId}が正しくないことです。他の値を表示して式が何を含んでいるかを確認した後、真剣に混乱している。
ActionBeanコード:
@UrlBinding("/")
public class TaskActionBean extends BaseActionBean{
String taskId;
Task task = new Task();
List<Task> tasks;
public final static String DISPLAY = "/index.jsp";
@DefaultHandler
public Resolution listTasks(){
tasks = Dao.datastore().find(Task.class).order("rank").asList();
return new ForwardResolution(DISPLAY);
}
public Resolution promoteTask(){
task.promoteTask();
tasks = Dao.datastore().find(Task.class).order("rank").asList();
return new ForwardResolution(DISPLAY);
}
// ... getters and setters
コードはスニペット化されていますが、私は他のコードは関連していないと思っていますが、これで十分でない場合はさらに含めることができます。 – Ankur
アクションビーンコードを投稿してください。 – soulcheck
当分、私はオブジェクトを使ってこれを解決しましたが、誰かが知っている限り、ここで何が起こっているのか理解したいと思っています。 –
Ankur