我需要将参数(POST)传递给@managedBean,我使用了如下托管属性:
@ManagedProperty(value = "#{param.id}")
private int id;
Bean的范围是ViewScope
我最终遇到此错误:
无法创建托管bean收据。发现了以下问题:-由表达式#{param.id} request引用的对象的范围比引用托管Bean的视图范围要短。
我能做什么?
arjan看看:
我的页面:Facelet标题
<form method="post" action="faces/index.xhtml">
<input name="id" value="4" />
<input type="submit" value="submit" />
</form>
<h:form>
<h:commandLink value="click" action="index">
<f:param id="id" name="id" value="20"/>
</h:commandLink>
</h:form>
两种方式:
@ManagedProperty
。 @ManagedBean
@RequestScoped
public class RequestBean {
@ManagedProperty(value="#{param.id}")
private Integer id;
@ManagedProperty(value="#{viewBean}")
private ViewBean viewBean;
}
视图范围的bean在@PostConstruct
请求范围的bean
期间和操作方法中可用。您只需要记住,在id
不带参数的情况下回发到同一视图时,可能会丢失。
@ManagedBean
@ViewScoped
public class ViewBean {
private Integer id;
@PostConstruct
public void init() {
id = Integer.valueOf(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id"));
}
}
这样id
,在整个视图范围内都可以使用首字母缩写。
我试图用jsf和CDI编写一个简单的登录表单。问题是当我注入我的SessionScoped bean时,它不像我期望的那样工作。这是我的豆子 这是我的控制器: 还有一个简单的Jsf表单,它调用login函数并显示LoginInfo类的计数器字段。 通过单击登录按钮和调试变量,我可以看到“lo”是这样的: lo={LoginInfo$Proxy$_$$_WeldClientProxy@16688}“
我得到的错误是: 我检查的内容: > 已启用批注处理,否则AnyService根本不会实例化 AnyBean不是最终的 请求作用域在AnyBean中与AspectJ代理(ScopedProxyMode.target_class)一起定义 存在EnableAspectJAutoproxy批注 类路径上有以下JAR: Web XML还包含RequestContextListener: 当我向org.s
我有一个web应用程序,它有一个Spring集成逻辑,在一个单独的线程中运行。问题是,在某个时候,我的Spring集成逻辑尝试使用请求范围的bean,然后我得到以下错误: 我有ContextLoaderListener设置: 我的作用域Bean是这样注释的(因为我听说代理我的Bean会有帮助): 我所做的可能吗?如果是,我在这里遗漏了什么?如果没有,关于我如何实现这一目标,还有其他建议吗?
无论 Struts2 还是 Spring,都提供了一种控制器: 每次请求,创建实例,使用后即抛弃。 这样的控制器的好处就是可以放心的吧 request 和 response 对象放心的存成它的私有 属性,反正使用一次后就丢掉了。 在 Nutz.Mvc,所谓控制器,实际上就是 Module,默认的,所有的模块都是整个应用程序唯一的, 除非你在 Ioc 配置文件里另有说明。 那么 Nutz 可以做到每
问题内容: 我正在尝试在Spring中建立一个请求范围的bean。 我已经成功设置好了,所以每个请求创建一次bean。现在,它需要访问HttpServletRequest对象。 由于该bean是每个请求创建一次的,所以我认为容器可以轻松地将请求对象注入到我的bean中。我怎样才能做到这一点 ? 问题答案: 可以将请求范围的Bean与请求对象自动连接。