2010-06-10 76 views
0

我发现了类似的问题,例如: Struts2 form elements 但是直到现在还没有答案。所以我在这里报复我的困难。Struts2表单元素UI太刚性

我正在使用Struts2版本2.1.6。当我离开的投入要素,如<s:textfield><s:textarea>,默认主题<s:form>的等等,元素会呈现为:

<tr> 
    <td class="tdLabel"><label for="firstname" class="label">Firstname:</label></td> 
    <td><input type="text" name="firstname" id="firstname"/></td> 
</tr> 
<tr> 
    <td class="tdLabel"><label for="lastname" class="label">Lastname:</label></td> 
    <td><input type="text" name="lastname" id="lastname"/></td> 
</tr> 

现在,如果我想补充一点,说的HTML标签之间的两个元素,结果会如上面相关问题中所描述的那样混乱。

另一个问题是:对于<s:checkbox>项目,这是不可能添加额外的标题。例如,这个标签

<s:checkbox id="defaultprinter" name="defaultprinter" key="lbl.defaultprinter"/> 

呈现为:

<tr> 
    <td valign="top" align="right"></td> 
    <td valign="top" align="left"> 
<input type="checkbox" name="defaultprinter" value="true" checked="checked" id="defaultprinter"/> <label for="defaultprinter" class="checkboxLabel">Default Printer</label> </td> 
</tr> 

仅通过设置的<s:checkbox>的属性,我不能将任何文本添加到上面显示的第一<td>(这里是空的! )。

我不知道上述严格的UI问题是否可以解决,或者是否有任何解决方法。

在此先感谢。

回答

1

只需切换您的theme。额外的(X)HTML标签是由于正在使用(可能)xhtml主题而生成的。如果你想调整它,你只需使用简单主题并自己写周围的标签。您可以为完整的表单或单个标签执行此操作。如果你喜欢,你甚至可以写自己的主题。

+0

感谢你的信息Display标签或JQuery。但是,有没有什么光滑的方式来重用默认主题,而我可以调整用户界面以获得两全其美?我不想通过切换主题来改变我现有的所有页面(有很多这样的页面)。 – jscoot 2010-06-11 10:49:55

+0

主题是可扩展的。 http://struts.apache.org/2.0.14/docs/extending-themes.html 但是在你的场景中,如果你已经使用了许多形式的默认(xhtml)主题,并且想为少数几个人做一些单独的调音输入字段,我会采取标准的方式:只需将这些字段的主题(从默认为“简单”)。 – leonbloy 2010-06-11 11:40:33

0

请尝试使用这两种framewok可以用来创造巨大(柔性)GUI