【问题标题】:Apache ISIS external linkApache ISIS 外部链接
【发布时间】:2017-05-16 16:30:35
【问题描述】:

假设我有一个域对象Customer。在这个对象上,我有一个外部站点的地址。

@PropertyLayout(named = "Link", describedAs = "Clickable link to customer")
public String getLink() {
    return "http://www.customer.com";
}

在这种情况下,这将在网页上仅显示为文本。如何在检票口查看器中创建可点击的链接?

【问题讨论】:

    标签: isis


    【解决方案1】:

    有第三方扩展:https://github.com/kev-m/isis-wicket-url/ 这是由我们的提交者之一 Kevin Meyer 完成的。

    我已提出 https://issues.apache.org/jira/browse/ISIS-1616 将其纳入“适当”的框架中。

    同时,您可以添加一个动作来轻松打开链接

    @Action(semantics=SemanticsOf.SAFE)
    @MemberOrder(named="link", sequence="1")
    public java.net.URL openLink() throws MalformedURLException {
        return new java.net.URL(getLink());
    }
    

    为了完成它,你可以添加这个守卫:

    public String disableOpenLink() {
        if(getLink() == null) { return "no link to open."; }
        try {
            openLink();
        } catch(MalformedURLException ex) {
            return "Bad link";
        }
        return null;
    }
    

    【讨论】:

      【解决方案2】:

      我认为 Apache Isis 中没有现成的解决方案。 您将需要为它滚动您自己的 Wicket 组件。例如,使用自定义注解@ExternalLink 对该属性进行注解,然后注册一个ComponentFactory,该ComponentFactory 为该属性创建Wicket ExternalLink 组件。例如,请参阅https://github.com/isisaddons/isis-wicket-summernote/blob/master/cpt/src/main/java/META-INF/services/org.apache.isis.viewer.wicket.ui.ComponentFactory

      【讨论】:

        猜你喜欢
        • 2016-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-23
        相关资源
        最近更新 更多