java wicket链接onclick代码在第二次单击时不执行

时间:2016-12-13 03:25:44

标签: java hyperlink onclick wicket

我在页面内创建了一个包含Dataview的片段,里面是一个Link。数据视图包含具有成员姓名的链接以及具有成员信息的其他列,例如birthdate。链接应该使用JasperSoft(PDF)显示所选成员的信息。事情是在第一次点击它一切顺利,但在下一次点击它不执行onclick()内的代码。但它仍然显示了报告。它从缓存中检索数据。

private class SearchResultFragment extends Fragment {
    private SearchResultFragment(String id, String markupId) {
        super(id, markupId, MemberInformationReportFilterPage.this);

        setOutputMarkupId(true);

        DataView<Member> dataView = new DataView<Member>("dataView", dataProvider) {
            protected void populateItem(Item<Member> item) {
                final MemberModel memberModel = new MemberModel(item.getModelObject());

                Link<Void> link = new Link<Void>("link") {
                    @Override
                    public void onClick() {
                        try {/*method to show the PDF report containing the member's info */
                            reportService.showJasperReport(LocalConstants.REPORT_SOURCE_MEMBERSHIP, getRequestCycle(), getData(memberModel), "member_information.jrxml", getParam(memberModel));
                        } catch (InvalidParameterException|ReportsException e) {
                            setRendered(false);
                            logger.errorException(e.getClass(), e.getMessage());
                            getSession().error(e.getFeedbackMessage());
                        }
                    }
                };
                link.add(new AttributeAppender("target", Model.of("_blank")));

                item.add(link);

不应在此处从缓存中获取数据,因为不会显示该成员的新更新。

请建议如何确保系统始终在每次用户点击时执行onclick代码。感谢

0 个答案:

没有答案