2014-12-02 69 views
0

我在html div中有一个s:复选框。当代码运行时,复选框位于外部(都)div和div似乎是空的并且不存在。为什么发生这种情况,我该如何解决?当我将随机文本放在div中时,div就包含它。我将背景颜色设置为红色,以便我可以检测到div。divs中的Struts2标签显示为空

<div id="outer"> 
    <div id="inner"> 
     <s:checkbox name="chBx" id"chBx" fieldValue="false" value="true" label="Check 
      This" /> 
    </div> 
</div> 
+0

它与Struts标签添加表标签到它的html有关。它不是一个完整的答案,但它与这种情况类似。 http://stackoverflow.com/questions/15503610/how-can-i-position-multiple-struts-textfields-into-4-seperate-blocks-in-one-form – Freigheist 2014-12-02 15:18:38

+0

就是这样。停止使用默认的XHTML主题(如果您不希望Struts2为您生成额外的HTML),可以在struts.xml中全局设置SIMPLE主题,或者(如果您在任何地方都可以使用生成的HTML,那么除外)标签/表单通过内联指定它们。 – 2014-12-02 15:31:19

+0

谢谢,随时回答,我会标记它 – Freigheist 2014-12-02 15:41:33

回答

1

this answer描述(你应该考虑upvoting太),Struts2的产生(或没有)a certain kind of HTML when rendering Struts Tags,立足您选择on the Theme

默认的是xhtml,这将产生很多东西给你。根据你的工作方式,这可能是方便的,但也很烦人。我个人更喜欢自己生成HTML,然后使用不会生成几乎任何HTML的主题:simple主题。

请注意,在处理大项目或具有相同特殊需求的多个项目时,您还可以编写自己的自定义主题(例如自动生成安全令牌)。

您可以在全球范围使用一个主题(在struts.xml中)

<constant name="struts.ui.theme" value="simple" /> 

或本地到单个标签/形式:

<s:checkbox name="chBx" id"chBx" fieldValue="false" 
      theme="simple" 
      value="true" label="Check This" /> 

在这种情况下,你可能需要编写<label>自己反对。