我是Spring Webflow的新手,这是我的问题:
我在Action Class中创建了一个flowcope变量,如下所示:
public void getStatusValue(HttpServletRequest req, RequestContext context) {
//This 'appStatus' value will return either "yes" or"no"
String status = req.getSession(true).getAttribute("appStatus");
if("yes".equalsIgnoreCase(status)){
context.getFlowScope().put("applicationStarted" , "yes");
} else {
context.getFlowScope().put("applicationStarted","no");
}
}
我使用
从xml文件调用此方法<on-entry>
<evaluate expression = "Action.getStarted(FlowRequestContext)"/>
</on-entry>
getStarted()方法将调用getStatus()方法 我能够使用
打印该值context.getFlowScope().get("applicationStarted")
并打印在动作类
中现在,在JSP上,我试图以这种方式检索“applicationStarted”变量的值
<script type=text/javascript">
var status = ${applicationStarted};
alert(status);
if(status == "yes")
//do something
else
//do something
问题是:1。警报根本没有打印 并且不知何故,jsp中的if条件没有执行,所以我没有得到逻辑工作
有人可以指导我吗?
编辑:
搜索之后,我了解到JavaScript流不能直接访问webflow变量,所以我尝试在jsp中使用<c:set>
标记,并尝试这样设置:
<c:set var="applicationStarted" scope="session" value=" {applicationStarted"}"/>
JavaScript中的:
var status = "<c:out value='${applicationStarted}'/>";
我仍然看不到打印的警报,逻辑也不起作用。 我相信我可能会遗漏一些关于语法的东西。
非常感谢任何帮助。
答案 0 :(得分:1)
我找到了上述问题的解决方案。 对于遇到同样问题的其他人来说,这是修复。
在javascript上,同时使用访问变量 只需提供如下的sessionScope:
var status = "<c:out value='${sessionScope.applicationStarted}'/>";
将填充“status”的值