gpt4 book ai didi

java - ActionBean 在页面加载时始终为 null

转载 作者:行者123 更新时间:2023-12-01 12:42:47 25 4
gpt4 key购买 nike

我正在使用 Stripes 构建一个小型 Java 应用程序。我能够回发到我的 ActionBeans,但在页面加载时 $(actionBean == null) 始终返回 true。为了缩小可能出现的问题的范围,我使用了一个示例 Hello World 程序。

我的 ActionBean:

package stripesbook.action;

import java.util.Date;
import java.util.Random;
import net.sourceforge.stripes.action.ActionBean;
import net.sourceforge.stripes.action.ActionBeanContext;
import net.sourceforge.stripes.action.DefaultHandler;
import net.sourceforge.stripes.action.ForwardResolution;
import net.sourceforge.stripes.action.Resolution;

public class HelloActionBean implements ActionBean {/* (1) */
private ActionBeanContext ctx;
public ActionBeanContext getContext() { return ctx; }
public void setContext(ActionBeanContext ctx) { this.ctx = ctx; }

private Date date;/* (2) */
public Date getDate() {
return date;
}
@DefaultHandler
public Resolution currentDate() {/* (3) */
date = new Date();
return new ForwardResolution(VIEW);
}
public Resolution randomDate() {
long max = System.currentTimeMillis();
long random = new Random().nextLong() % max;
date = new Date(random);
return new ForwardResolution(VIEW);
}
private static final String VIEW = "/hello.jsp";
}

和我的jsp页面:

<%@page contentType="text/html;charset=ISO-8859-1" language="java"%>
<%@taglib prefix="s" uri="http://stripes.sourceforge.net/stripes.tld"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Hello, Stripes!</title>
</head>
<body>
<h3>Hello, Stripes!</h3>
<p>
Date and time:
<br>
<b>
<p>${actionBean == null}</p>
<fmt:formatDate type="both" dateStyle="full"
value="${actionBean.date}"/>
</b>
</p>
<p>
<s:link beanclass="stripesbook.action.HelloActionBean"
event="currentDate">
Show the current date and time
</s:link> |
<s:link beanclass="stripesbook.action.HelloActionBean"
event="randomDate">
Show a random date and time
</s:link>
</p>
</body>
</html>

当我在 ActionBean 中设置断点时,它们在页面加载时不会被命中,因此看起来绑定(bind)可能没有发生。我正在使用 NetBeans 的 Apache/Tomcat 默认值。这可能是一个简单的解决方案,但除了官方文档之外,关于 Stripes 的文档相对较少。

最佳答案

要使用 bean,您需要声明它。

插入:

 <jsp:useBean id="actionBean" class="stripesbook.action.HelloActionBean"/>

在 JSP 的顶部,如下所示:

<%@page contentType="text/html;charset=ISO-8859-1" language="java"%>
<%@taglib prefix="s" uri="http://stripes.sourceforge.net/stripes.tld"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>

<jsp:useBean id="actionBean" class="stripesbook.action.HelloActionBean"/>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

关于java - ActionBean 在页面加载时始终为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24944423/

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