问题标签 [wicket-1.5]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
456 浏览

security - 根据用户和上下文隐藏和显示或切换面板和组件

我正在开发一个 wicket 应用程序(目前使用 wicket 1.5),它即将获得类似博客的功能。用户可以发布内容或将某些业务对象标记为公开,其他用户可以评论这些内容。只有拥有用户才能编辑这些业务对象或帖子。我知道有几个框架提供了基于当前用户的隐藏/显示或切换面板功能,但是有什么可以用来做到这一点的,不仅是基于用户的,而且是基于上下文的?我知道我必须提供我的业务逻辑,但我更愿意跳过所有重复的样板代码,所以即使是 AOP 驱动的方法也可以解决问题,但由于我以前从未使用过它,所以我没有不知道。

编辑:关于场景的更多细节:

在应用程序中,任何(登录的)用户都可以输入比方说他可以标记为公共(任何人都可以阅读)或私人(只能由他自己阅读)的食谱。任何登录用户都可以评论任何公共配方(公共或私人)。私人评论只能由评论者和食谱所有者阅读。只有所有者可以编辑配方。只有评论者可以编辑他的评论。只有配方所有者或评论者可以删除评论。所以基本上我只是在寻找一个想法,通过基于上下文的角色(“所有者”)来扩展经典的基于角色的安全模型,并且通过编写这个,似乎唯一的检票口边缘是,我更喜欢一种基于框架的解决方案,该框架可以很好地集成 wicket(或者甚至是 wicketstuff 已经提供集成的框架)。

0 投票
1 回答
479 浏览

wicket - 页面限制 AjaxPagingNavigator?

对 DataView 使用检票口分页支持时。-> AjaxPagingNavigator

如何限制页数?

例如 :

第一个 上一个 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 下一个 最后一个

应限制为最多 10 页...(前 5 页和后 5 页)

第一个 上一个 1 2 3 4 5 ... 14 15 16 17 18 下一个 最后一个

任何想法?默认支持吗?如果没有......我该如何改变它?

谢谢科恩

0 投票
3 回答
916 浏览

design-patterns - 检票口“可空”组件视图

我经常使用自定义 Wicket 组件来渲染模型对象。对象有时可以为空,在这种情况下会显示特定的 div。因此,在组件 HTML 呈现代码中,我有两个 div,一个用于“空”情况,一个用于“非空”情况,以及其他一些内部标记。一个被显示,而另一个被屏蔽。

我面临的问题是 Wicket 强迫我完全构建两个 div,即使模型对象为空。在对子组件构建(标签、表格等)的所有调用中,我必须检查是否为空,这既麻烦又容易出错:

对此的第一个解决方案是将非空部分拆分为特定的检票口子组件,无论是作为它自己的类还是主组件的内部类;并插入此组件来代替“非空”div。但这使所需文件(资源、HTML、Java 代码)的数量翻了一番。这并不理想。

第二种解决方案是通用的,将创建一个“装饰器”组件来封装任何其他组件,并检查其模型对象的空值。如果组件为空,那么它会显示一个标准的 div,如果不是,它将依赖于被装饰的组件。我尝试使用边框或复合面板来实现这一点,但我无法让它发挥作用。我想要实现的是这样的:

或者,如有必要,让客户端负责显示组件的“可空性”,在客户端代码中使用类似这样的内容:

0 投票
1 回答
758 浏览

wicket-1.5 - 如何通过一些自定义消息检票口覆盖 FileUpload 的 uploadTooLarge 消息

我有一个包含可重用面板的页面。此面板包含文件上传逻辑。我已将 form.setMaxSize() 设置为 10MB。是否可以覆盖默认的检票口消息并显示一些自定义消息?

0 投票
2 回答
1466 浏览

jsp - Wicket 1.5 和 JSP/servlet 包装

在我正在进行的项目中,我们希望从 Wicket 1.4 升级到 1.5。经过一些工作,我们得到了大部分工作正常。

然而,一件主要的事情还没有奏效。需要将旧的 JSP/servlet 包装到新的基于 Wicket 的应用程序中,而旧的 1.4 方法不再起作用。

1.4 中简化的 html 输出

1.5 中简化的 html 输出

因此,所有JSP 内容都呈现在我们喜欢将其包装在.

包装魔法发生在我们的内部AbstractServletWrapperPanelWebMarkupContainer.onRender(MarkupStream markupStream)覆盖中。但是,在 Wicket 1.5 中我们无法调用markupStream.next(),因为它不再提供。我还没有找到解决这个问题的方法。

1.4 的工作代码,以示例面板实现作为参考:

在 1.5 版本中,我通过(HttpServletRequest)RequestCycle.get().getRequest().getContainerRequest()and获取请求和响应(HttpServletResponse)RequestCycle.get().getResponse().getContainerResponse()

然后我尝试:

  • markupStream.next()使用1.5 中不再提供 的 onRender()-magic
  • 把它移到onComponentTagBody(MarkupStream markupStream, ComponentTag tag)
    • 注意:要调用 onComponentTagBody() 我必须打开 wicket:container tag <wicket:container wicket:id="wrappedContentId"></wicket:container>。我也尝试过不调用markupStream.next(),因为该步骤是在调用Component.internalRenderComponent()之前执行的onComponentTagBody
  • 把它移到onComponentTag(ComponentTag tag)
  • 结合上面的setRenderBodyOnly(true)设置WebMarkupContatiner.onInitialize()
  • 使用<div>标签而不是wicket:container
  • 使用调试模式跟踪 1.5 的渲染过程。但是,我想我还是错过了新的 1.5 渲染组件方式的一些关键部分。

由于短期内无法将所有 JSP 功能迁移到 Wicket,因此目前这对我们来说是一个很好的选择。

作为参考,1.4 执行此操作的方法与我在文章jsp-and-wicket-sitting-in-a-treeWicket wiki中找到的方法非常相似

任何解决此问题的帮助将不胜感激!

[编辑]
在 TheStijn 提出建议后,我也尝试过调用getAssociatedMarkupStream()from ,onRender()但这会引发以下错误:org.apache.wicket.markup.MarkupNotFoundException: Markup of type 'html' for component '... AbstractServletWrapperPanel$1' not found.

0 投票
3 回答
932 浏览

java - 在 URL 重写期间截断链接 URL(使用 JSessionID)

用户通过访问第一次访问我的应用主页

生成表单的 URL

没关系,但我主页上的每个链接都有表单的 URL

(此处复制的特定“关于我们”链接 URL 的长度为 102 个字符)。这些 URL 无效,因为存在两个点而不是PageHome正确完成路径。

有什么办法可以配置 GAE/J 来抑制这个 URL 缩写,或者这个操作是 web 框架的省吗?

作为一个(相当糟糕的)解决方法,我已经在链接的 URL 中对 JSessionID 的抑制进行了编码,并且正在对应用程序进行编码以在会话 cookie 被禁用时发出警告。但我会很感激任何指示。

伊恩·马歇尔

我的操作环境

Web 应用服务器:GAE/J 1.6.1.1(不是开发服务器)(我知道:它不是最新版本)
Web 框架:Apache Wicket 1.5.3
产生上述效果的 Web 浏览器:
·Mozilla Firefox 10.0.1
·Microsoft Internet Explorer 8.0.6001.18702
· 在我运行 Google Android 2.3.5 的 HTC Wildfire S 上找到

0 投票
2 回答
1124 浏览

java - ListMultipleChoice 中的模型(检票口 1.5.4)

单击提交按钮时,我有奇怪的堆栈跟踪(此代码已呈现但不能进行表单处理)。示例类:

我如何理解问题在定义模型中,但我不明白为什么(我尝试了很多方法并没有检查问题)。当我以同样的方式创建 DropDownChoice 时,一切正常,但在这种情况下,我使用了

我认为这是非常愚蠢的错误,请您帮忙。

0 投票
1 回答
71 浏览

wicket-1.5 - 将零添加到检票口中的数字

我对 Wicket 中的格式编号有一些问题。在 textfiled 中只能输入五位数字 - (xxxxx) 如果我输入的数字小于五位,如 10,它可以自动更改格式,如 00010 为零。我该怎么做?谢谢你的建议。

0 投票
2 回答
173 浏览

wicket - PropertyModel 还是 Serializable 对象?

哪种方法更好?:

或者

我试图找到有关比较的任何信息..但找不到任何东西我如何理解第一种方法是读/写逻辑,第二种方法是只读逻辑(如果我不正确,请写信给我)。但是对于只读逻辑,哪个更好?

0 投票
3 回答
4326 浏览

url - Wicket 1.5 并获取页面实例的 URL

Wicket 1.5 中获取页面实例的 URL 的正确方法是什么?

在 Wicket 1.4.x 这工作:

在 Wicket 1.5urlFor()中的 RequestCycle中删除了一堆不同版本,其中包括我在 Wicket 1.4 中使用的urlFor(Page page) 。