自定义的Struts2标签?

4
我希望编写一个自定义的struts2标签,它有一个独立的action类,并且可以从不同的jsp页面调用。
例如:
<s:writetext type="aaa" parentid="xxx" parentname ="yyy" height ="50" width ="125" />

这可能吗?请帮忙,我对此很陌生,谷歌搜索也没有帮助。

谢谢, 阿迪提亚

3个回答

4

这是我能找到的极少数文章之一(即使是一年后)。 - Alberto

4

在审查一些现有代码时,这个老问题也变得对我有意义。除了tbruyelle的答案外,这对我最有帮助的参考资料是:

http://bodez.wordpress.com/2009/03/13/customising-struts2-jsp-tags/

总之(1),

  1. 扩展现有标签(例如org.apache.struts2.views.jsp.ui.TextFieldTag)
  2. 扩展其行为(例如org.apache.struts2.components.TextField)
  3. 定义新的主题和模板(例如从位于/core/src/main/resources/template的现有主题中复制并编辑)
  4. 生成定制版本的标签库的新TLD
  5. 将其部署在Web应用程序中

Struts 2 API也可能有所帮助。

不幸的是(并且令人惊讶的是),关于如何做到这一点几乎没有文档,并且现有的struts组件的javadoc "有点稀少"和误导性。也许这不是旨在这样使用?


笔记

(1)我在原始帖子几年后编辑了这个答案,添加了这个总结,使答案符合SO指导方针。不幸的是,很长一段时间没有与类似代码一起工作,我无法确定是否保留了链接博客的精髓,因此如果链接仍然有效,请参考该链接。


3

第一个链接仅涉及创建模板并使用现有的Struts 2标签进行测试:<s:component template="..mytemplate">,也就是说,它不涉及创建新的mytags:writetext标签。 - Alberto
第二个链接(http://www.wantii.com/wordpress/?p=12)不幸已经失效。 - Alberto
@Alberto Archive.org有这个页面的副本:第二个链接 - beendr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接