JSF 视图 - 在操作上返回 null 不会更新视图

2024-03-15

我读过与我有同样问题的帖子JSF ViewScope - 在不更新视图的操作上返回 null https://stackoverflow.com/questions/13914594/jsf-viewscope-returning-null-on-actions-do-not-update-the-view但它对我不起作用,因为我已经在另一个页面中使用了 h:commandLink 并且它工作得很好,但在这个页面上却没有。

这是请求 Bean

public class AddSectionBean {
    public String delete(String id) {
                try {

                    HttpSession session = SessionUtil.getSession();
                    UserVO userVOCreater = (UserVO) session.getAttribute("userVO");

                    SectionsDao.getInstance().deleteSectionById(
                            Integer.parseInt(id));

                    LoggerVO loggerVO =new LoggerVO();
                    loggerVO.setUserid(userVOCreater.getId());
                    loggerVO.setLog("deleted Section Id:"+id);
                    LoggerDao.getInstance().insertLogger(loggerVO);

                } catch (Exception e) {
                    e.printStackTrace();
                    BundleMessages.getInstance().setMessage("error",
                            FacesMessage.SEVERITY_ERROR);
                    logger.error(e.getMessage(), e);

                }

                return null;

            }
}

该链接位于每列的丰富表格内

 <rich:column>
 <h:commandLink id="actualDelete" styleClass="delete_#{sectionsBean.datatableSections.rowIndex}" action ="#{addSectionBean.delete(s.id)}" />
 </rich:column>

请注意:我尝试返回结果而不是 null,但是当我这样做时,我会丢失页面中的样式和脚本 ,请注意,这些脚本没有效果,因为我已经用它们进行了测试并得到了相同的结果


通过将删除方法移至查看表的 bean 并在删除函数内再次调用数据库方法以重新加载表(即使在 postConstruct 函数中重新加载)来解决问题

public class SectionsBean{
List<SectionVO> sectionsList = new ArrayList<SectionVO>();

    @PostConstruct
     public void postConstruct() {
        try {
        this.sectionsList = SectionsDao.getInstance().getSections();
        } catch (Exception e) {
            e.printStackTrace();
            logger.error(e.getMessage(), e);

        }

    }
 public String delete(String id) {
            try {

                HttpSession session = SessionUtil.getSession();
                UserVO userVOCreater = (UserVO) session.getAttribute("userVO");

                SectionsDao.getInstance().deleteSectionById(
                        Integer.parseInt(id));

                LoggerVO loggerVO =new LoggerVO();
                loggerVO.setUserid(userVOCreater.getId());
                loggerVO.setLog("deleted Section Id:"+id);
                LoggerDao.getInstance().insertLogger(loggerVO);
//reload the database table
                this.sectionsList = SectionsDao.getInstance().getSections();
            } catch (Exception e) {
                e.printStackTrace();
                BundleMessages.getInstance().setMessage("error",
                        FacesMessage.SEVERITY_ERROR);
                logger.error(e.getMessage(), e);

            }
            BundleMessages.getInstance().setMessage("success",
                    FacesMessage.SEVERITY_INFO);
            System.out.println("calling delete id="+id);
            return null;

        }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSF 视图 - 在操作上返回 null 不会更新视图 的相关文章

  • 从 Facelets 错误页面引用 CDI 托管 bean

    我很难尝试让通用错误页面在使用 JSF 2 Facelets 和 CDI 的 非常简单的 WAR 项目中工作 我的应用程序服务器是 WebLogic 12c 它应该支持所有这些开箱即用的功能 但它无法显示错误页面 当我将完全相同的 WAR
  • 在调用 f:ajax 侦听器之前和之后执行 JavaScript

    有一种简单的方法可以在调用之前和之后调用 JavaScript 操作
  • 在复合组件的属性中使用EL

    我的 JSF 自定义组件代码
  • 在 Converter 中将 JSF 日历日期转换为 JodaTime

    JodaTime 可能是最好的日期和时间库 因此 我很想从后台 bean 的 JodaTime 实例中的前端 xhtml Calendar 小部件接收用户输入 因此我正在考虑使用 JSF Converter 来完成这项工作 这样做明智吗 同
  • 在 primefaces 中进行单元格编辑后,CellEdit 事件不起作用

    我正在尝试在 Primefaces 中按单元格创建可编辑数据表 但在编辑单元格后 事件未提交 我的代码无法检测到 newValue 并且堆栈跟踪中没有错误或日志 这是我的代码 xhtml
  • 覆盖 JSF Primefaces 消息标签

    我可以覆盖默认实现吗
  • 在 xhtml 页面中显示版本和构建日期

    我想在 JSF 应用程序的页脚上显示构建版本和构建日期 这些页面是 XHTML 我正在寻找从 pom xml 或其他工件获取信息的方法 我发现以下使用 maven replace 插件 http www vineetmanohar com
  • 如何在jsf页面中嵌入java代码?

    我有 一个名为 LoginBean 的托管 bean 名为 login xhtml 的 JSF 页面 在这个 jsf 页面中 我有一个登录表单 在managebean 内部我有一个loginCheck 函数 public void logi
  • Eclipse Faces 配置编辑器不工作

    Summary 编辑 faces config xml 时 Eclipse 中的 Faces 配置编辑器不会打开 这是一个 JavaServer Faces 项目 Details 日食3 7 2 Eclipse m2e 1 0 1 m2e
  • 两个 primefaces 日历组件验证

    我有一个表格JSF 2我使用双字段来指定日期范围 这样做的目的是不让用户选择第二个日期之前的第一个日期 所以我想在发送表单之前执行验证 使用p calendar成分 我所做的是将验证器绑定到第二个日历输入 以便在内部访问第一个组件并比较日期
  • 如何从另一个 JSF 页面按下某个按钮返回到同一个 JSF 页面

    我有两个 JSF 页面 假设 A 和 B 从这两个页面 A 和 B 我可以导航到页面 C 现在页面 C 中有一个按钮 确定按钮 单击它应该导航回 A 或 B 具体取决于从哪里 A 或 B 调用页面 C 任何帮助将不胜感激 利用视图参数的解决
  • 不重新渲染

    我正在尝试在我的应用程序 Seam RichFaces 中显示购物车 并包含 从购物车中删除
  • 同时调用多个支持 bean 方法

    有没有办法从 JSF 中的不同支持 bean 调用多个方法 我有一个存储用户信息的应用程序 我有多个支持 bean 它们分为时间表 地址 电话等 当应用程序最初加载时 一切正常 但由于我的所有视图都是类型 ViewScope即使显示新用户
  • 数据表 JSF 中的延迟加载

    在我负责的许多项目中 没有什么比数据表中的延迟分页更好的了 JSF 是否有某种魔力 或者我说得对吗 它确实是一个很大的性能问题 如果你看过一些教程 几乎没有人关心惰性分页 假设您在支持 bean 上有 List 并且数据库中有 2000 行
  • jsf 2.0 中看不见的注释? [复制]

    这个问题在这里已经有答案了 是否可以在我的 xhtml 文件中嵌入注释 这些注释仅显示在源代码中 而不显示在渲染结果中 我想在文件中包含作者 日期 但最终用户在生成的输出中不应该看到它们 如果我使用标准评论标签浏览器显示它们 将以下内容添加
  • 在 FacesConverter 中使用 ManagedBean

    我想用ManagedBean in my Converter The ManagedBean负责从数据库获取数据 在Converter我想将字符串转换为必须从数据库获取的对象 这是我的转换器 FacesConverter forClass
  • java.lang.IllegalStateException - 提交响应后无法创建会话

    我在我的项目中使用 JSF PrimeFaces 我为此准备了一个Maven项目 当我编译项目并加载主页后 我收到以下异常 java lang IllegalStateException Cannot create a session af
  • primefaces 二维码未显示?

    I am using primefaces to develop a web app I am trying to show the bar code on mhe webpage All coders are shown except t
  • 数据表中每一行的工具提示

    这个问题尖叫着是重复的JSF 2 0 Primefaces 2 x 数据表行的工具提示 https stackoverflow com questions 9980155 jsf 2 0 primefaces 2 x tooltip for
  • Primefaces 对话框渲染两次

    我创建了一个 ui component 来像弹出窗口一样使用 因此我可以使用此模板的标准创建很多弹出窗口 该组件只是一个带有两个按钮 取消和提交 的弹出窗口和一个可以覆盖的内容 如下所示

随机推荐

  • 尝试使用 keras.utils.plot_model 时出错

    我正在尝试使用 Keras 包在 Python 中绘制深度学习模型的图 图 但不幸的是它一直给我一个错误 该错误信息量不大 我在 Linux 上使用 Python 3 5 2 Anaconda 4 2 0 Keras 2 1 6 运行 py