gpt4 book ai didi

java - 使用注释将 JSF 请求参数注入(inject)到由 Spring 管理的 bean 中

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

现在我使用 f:viewParam 标签将请求参数注入(inject)到我的 bean 的字段中

<f:viewParam name="id" value="#{surveyController.id}" />

但我更愿意为此使用注释。我知道 @Value 注释,我想我可以做这样的事情

@Component
@Scope("view")
public class SurveyControlador {
@Value("#{new Long.parseLong('${param.id}')}")
private Long id;

....
}

但这实在是太难看了。

有没有更好的方法,我不需要显式转换值,甚至可以省略“param”?我什至愿意安装第三方库

最佳答案

我使用过全能面'@Param成功了,像这样:

@Named @ViewScoped
public class SurveyController {
@Inject @Param(name = "id")
private ParamValue<Long> idParam;

public void doStuff() {
if (idParam.getValue().equals(1)) {
throw new IllegalAccessException("you don't dare");
}
}
}

专业版:您还可以访问原始提交的值,并且omnifaces可以选择应用验证/转换(查看文档)。

缺点: 包装您的真实参数。并且您仍然需要指定 <f:viewParam> (不过,如果您想保留导航参数,则无需将其绑定(bind)到支持 bean。

请注意,这会利用 CDI,它可能适合也可能不适合您的工作方式。

关于java - 使用注释将 JSF 请求参数注入(inject)到由 Spring 管理的 bean 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22502263/

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