如何将<s:select ... =“”>和<s:textfield =“”>放在一行 - struts2?</s:> </s:>

时间:2010-12-18 15:49:58

标签: jsp struts2

这有点令人尴尬。 我在我的一个小项目中使用Struts2。在JSP中,当我提出这样的东西:

<s:select list="keywords" key="label.search" name="selectedKeyword"/>
<s:textfield name="searchparams" size="20" cssClass="label"/>

我明白了(抱歉,我是新用户,所以我无法添加图片): http://i.stack.imgur.com/ZA2Wg.png

--dropdown_--
[              ] < textfield

我想要的是文本字段位于同一行的下拉列表旁边。 有没有办法在不创建我自己的主题的情况下做到这一点?

提前谢谢!

2 个答案:

答案 0 :(得分:8)

Struts2标签以FreeMarker为主题。您可以通过在struts.properties中指定以下内容,将默认XHTML主题更改为简单主题:

struts.ui.theme=simple

或者您可以通过添加主题属性来覆盖这些标记的主题,如下所示:

<s:select list="keywords" key="label.search" name="selectedKeyword" theme="simple"/>
<s:textfield name="searchparams" size="20" cssClass="label" theme="simple"/>

这里有一些additional information about themes

答案 1 :(得分:1)

注意struts.properties不是首选

“也可以在我们的web.xml文件中定义常量;当我们不需要基于XML的配置时,这很有用。要么可以接受:使用哪个取决于您的需求和偏好。我们也可以定义名为struts.properties的文件中的常量,也是在类路径上,这不是首选。“ - Apache Struts2第21页。

要在web.xml中配置struts

<filter>
    <filter-name>action</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    <init-param>
        <param-name>struts.ui.theme</param-name>
        <param-value>simple</param-value>
    </init-param>
</filter>

如何为整页设置参数

也许并不适合所有人,但个人如果我不想要什么是默认值我会想要为整个页面使用另一个主题,所以这很方便。

<s:set var="theme" value="'simple'" scope="page" />

如何在struts.xml中设置参数

在根'struts'标签下,您可以定义常量......

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