问题标签 [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.
security - 根据用户和上下文隐藏和显示或切换面板和组件
我正在开发一个 wicket 应用程序(目前使用 wicket 1.5),它即将获得类似博客的功能。用户可以发布内容或将某些业务对象标记为公开,其他用户可以评论这些内容。只有拥有用户才能编辑这些业务对象或帖子。我知道有几个框架提供了基于当前用户的隐藏/显示或切换面板功能,但是有什么可以用来做到这一点的,不仅是基于用户的,而且是基于上下文的?我知道我必须提供我的业务逻辑,但我更愿意跳过所有重复的样板代码,所以即使是 AOP 驱动的方法也可以解决问题,但由于我以前从未使用过它,所以我没有不知道。
编辑:关于场景的更多细节:
在应用程序中,任何(登录的)用户都可以输入比方说他可以标记为公共(任何人都可以阅读)或私人(只能由他自己阅读)的食谱。任何登录用户都可以评论任何公共配方(公共或私人)。私人评论只能由评论者和食谱所有者阅读。只有所有者可以编辑配方。只有评论者可以编辑他的评论。只有配方所有者或评论者可以删除评论。所以基本上我只是在寻找一个想法,通过基于上下文的角色(“所有者”)来扩展经典的基于角色的安全模型,并且通过编写这个,似乎唯一的检票口边缘是,我更喜欢一种基于框架的解决方案,该框架可以很好地集成 wicket(或者甚至是 wicketstuff 已经提供集成的框架)。
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 下一个 最后一个
任何想法?默认支持吗?如果没有......我该如何改变它?
谢谢科恩
design-patterns - 检票口“可空”组件视图
我经常使用自定义 Wicket 组件来渲染模型对象。对象有时可以为空,在这种情况下会显示特定的 div。因此,在组件 HTML 呈现代码中,我有两个 div,一个用于“空”情况,一个用于“非空”情况,以及其他一些内部标记。一个被显示,而另一个被屏蔽。
我面临的问题是 Wicket 强迫我完全构建两个 div,即使模型对象为空。在对子组件构建(标签、表格等)的所有调用中,我必须检查是否为空,这既麻烦又容易出错:
对此的第一个解决方案是将非空部分拆分为特定的检票口子组件,无论是作为它自己的类还是主组件的内部类;并插入此组件来代替“非空”div。但这使所需文件(资源、HTML、Java 代码)的数量翻了一番。这并不理想。
第二种解决方案是通用的,将创建一个“装饰器”组件来封装任何其他组件,并检查其模型对象的空值。如果组件为空,那么它会显示一个标准的 div,如果不是,它将依赖于被装饰的组件。我尝试使用边框或复合面板来实现这一点,但我无法让它发挥作用。我想要实现的是这样的:
或者,如有必要,让客户端负责显示组件的“可空性”,在客户端代码中使用类似这样的内容:
wicket-1.5 - 如何通过一些自定义消息检票口覆盖 FileUpload 的 uploadTooLarge 消息
我有一个包含可重用面板的页面。此面板包含文件上传逻辑。我已将 form.setMaxSize() 设置为 10MB。是否可以覆盖默认的检票口消息并显示一些自定义消息?
jsp - Wicket 1.5 和 JSP/servlet 包装
在我正在进行的项目中,我们希望从 Wicket 1.4 升级到 1.5。经过一些工作,我们得到了大部分工作正常。
然而,一件主要的事情还没有奏效。需要将旧的 JSP/servlet 包装到新的基于 Wicket 的应用程序中,而旧的 1.4 方法不再起作用。
1.4 中简化的 html 输出
1.5 中简化的 html 输出
因此,所有JSP 内容都呈现在我们喜欢将其包装在.
包装魔法发生在我们的内部AbstractServletWrapperPanel
和WebMarkupContainer.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
。
- 注意:要调用 onComponentTagBody() 我必须打开 wicket:container tag
- 把它移到
onComponentTag(ComponentTag tag)
- 结合上面的
setRenderBodyOnly(true)
设置WebMarkupContatiner.onInitialize()
- 使用
<div>
标签而不是wicket:container
- 使用调试模式跟踪 1.5 的渲染过程。但是,我想我还是错过了新的 1.5 渲染组件方式的一些关键部分。
由于短期内无法将所有 JSP 功能迁移到 Wicket,因此目前这对我们来说是一个很好的选择。
作为参考,1.4 执行此操作的方法与我在文章jsp-and-wicket-sitting-in-a-tree和Wicket wiki中找到的方法非常相似
任何解决此问题的帮助将不胜感激!
[编辑]
在 TheStijn 提出建议后,我也尝试过调用getAssociatedMarkupStream()
from ,onRender()
但这会引发以下错误:org.apache.wicket.markup.MarkupNotFoundException: Markup of type 'html' for component '... AbstractServletWrapperPanel$1' not found.
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 上找到
java - ListMultipleChoice 中的模型(检票口 1.5.4)
单击提交按钮时,我有奇怪的堆栈跟踪(此代码已呈现但不能进行表单处理)。示例类:
我如何理解问题在定义模型中,但我不明白为什么(我尝试了很多方法并没有检查问题)。当我以同样的方式创建 DropDownChoice 时,一切正常,但在这种情况下,我使用了
与
我认为这是非常愚蠢的错误,请您帮忙。
wicket-1.5 - 将零添加到检票口中的数字
我对 Wicket 中的格式编号有一些问题。在 textfiled 中只能输入五位数字 - (xxxxx) 如果我输入的数字小于五位,如 10,它可以自动更改格式,如 00010 为零。我该怎么做?谢谢你的建议。
wicket - PropertyModel 还是 Serializable 对象?
哪种方法更好?:
或者
我试图找到有关比较的任何信息..但找不到任何东西我如何理解第一种方法是读/写逻辑,第二种方法是只读逻辑(如果我不正确,请写信给我)。但是对于只读逻辑,哪个更好?
url - Wicket 1.5 并获取页面实例的 URL
Wicket 1.5 中获取页面实例的 URL 的正确方法是什么?
在 Wicket 1.4.x 这工作:
在 Wicket 1.5urlFor()
中的 RequestCycle中删除了一堆不同版本,其中包括我在 Wicket 1.4 中使用的urlFor(Page page) 。