Struts2第十一篇【简单UI标签、数据回显】


Struts2UI标签

Sturts2为了简化咱们的开发,也为咱们提供了UI标签…也就是显示页面的标签…..css

可是呢,Struts2是服务端的框架,所以使用页面的标签是须要在服务器端解析而后再被浏览器解析最后才显示在页面上的。所以,它的性能是不够HTML标签好的…HTML直接就可以被浏览器解析浏览器

还有一点是:咱们在写网页的时候,确定是须要使用div+css的页面布局的使用Struts2UI标签也无法干了….所以,除了有必要的话,才去使用Struts2UI标签ruby

简单使用Struts2UI标签

<%--咱们发现,Struts2UI标签用起来和HTML是差很少的--%>

<s:form id="form1" name="form1" method="POST" action="#">


    <%--输入框数据,lable就至关于咱们之前外边写的数据--%>
    <s:textfield label="用户名" name="user.username"/>

    <%--密码框--%>
    <s:password label="密码" name="user.password"/>

    <%--提交按钮--%>
    <s:submit value="提交"/>

</s:form>

当咱们查看源文件的时候,发现Struts2UI标签为咱们自动加入了不少的标签服务器

这里写图片描述

设置主题

上面已经说了,Struts2UI标签为咱们自动加入了不少的标签,那有的时候,咱们不想要,或者换一种风格的话,怎么办???markdown

Struts2UI标签也为咱们提供了“主题”这样的功能框架

当咱们在表单中设置theme属性为simple以后…咱们发现源文件Struts2自动为咱们添加的标签全没了。布局

这里写图片描述

若是咱们想整个项目都是使用simple为主题的话,咱们能够在配置文件中配置性能

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

数据回显

咱们对数据回显也不会陌生,在使用EL表达式的时候就已经用过了数据回显了….那为啥数据回显放在Struts2标签这里讲解呢???由于Struts2也提供了数据回显的支持,而且,使用数据回显必需要使用Struts2的标签ui

这里写图片描述

按照正常思路写数据回显

在Struts中按照正常思路写数据回显是这样的:spa

  • 把数据放到request域中存储,跳转到对应的JSP页面…
public String login() {
        //把数据存储到域中
        Map<String, Object> request = ActionContext.getContext().getContextMap();

        request.put("username", "zhongfucheng");
        request.put("password", "123");

        return SUCCESS;
    }
  • JSP页面使用Struts2标签,设置value属性就能够进行数据回显了
<s:form id="form1" name="form1" method="POST" action="" >


    <%--输入框数据,lable就至关于咱们之前外边写的数据--%>
    <s:textfield label="用户名" name="user.username" value="%{#request.username}"/>

    <%--密码框--%>
    <s:password label="密码" name="user.password"/>

    <%--提交按钮--%>
    <s:submit value="提交"/>

</s:form>
  • 效果:

这里写图片描述


Struts2提供的数据回显

其实,上面的代码已经实现了数据回显,但Struts2提供了一个更巧妙的方法

这里写图片描述

也就是说,Struts2能够直接在name中就能够实现数据回显了….要作的是:

  • 咱们回显的数据在根元素下的,也就是保存在CompoundRoot中的数据【保存在根元素的数据不用使用#号就能够获取】

所以,咱们把想要回显的数据放在CompoundRoot下

  • 直接放在值栈的数据就是根元素数据
//获得值栈对象
        ValueStack valueStack = ActionContext.getContext().getValueStack();
        valueStack.set("username","zhongfucheng");
  • 在JSP就能够直接获取了
<s:textfield label="用户名" name="username"/>
  • 效果:

这里写图片描述

相关文章
相关标签/搜索