JavaWeb学习总结——通用标签和表单标签(尚硅谷_佟刚老师)

通用标签的示例

一、示例一:通过<s:property/>获取属性参数

1. 设置属性值

<a href="Test.action?name=zzh">Test </a>

       <br><br>

<%

              session.setAttribute("date", new Date());

%>

2. 配置Struts2

<action name="TestServletActionContext"

                     class="zzh.struts2.com.TestServletActionContextAction">

              <result >/success.jsp</result>

       </action>

3. 输出的jsp

首先导入<%@ taglib prefix="s" uri="/struts-tags" %>

<s:property value="#session.date"/>

       <br><br>

       <s:property value="#parameters.name[0]"/>

二、其他Struts2的通用标签

1. 通过<s:url>获取属性参数

                          

2. 通过<s:set>向域对象添加属性

3. 通过<s:put>压入弹出

4. 通过<s:if>直接使用值栈中的属性做条件判断

5. iterator

6. sort

7. date

三、示例二、sort

index.jsp

    <a href="mytest">Mytest</a>

Struts.xml

<action name="mytest"

              class="zzh.struts2.com.MytestMethos" method="Mytest">

              <result>/mysuccess.jsp</result>

</action>

MytestMethod

publicclass MytestMethos {

 

       private List<Person> persons = new ArrayList<Person>();

       public List<Person> getPersons() {

              return persons;

       }关键代码,切记

       public String Mytest() {

              persons.add(new Person("DD",55));

              persons.add(new Person("AA",22));

              persons.add(new Person("CC",44));

              persons.add(new Person("BB",33));

              return"success";

       }

}

mysuccess.jsp

       <%

              PersonComparator pc = new PersonComparator();

              request.setAttribute("comparator", pc);

       %>

       <s:sort comparator="#request.comparator" source="persons" var="persons2"></s:sort>

       <s:iterator value="#attr.persons2">

              ${Name }+${Age }<br>

       </s:iterator>

四、表单标签初体验——示例三

1.     实现

form.jsp(<%@ taglib prefix="s" uri="/struts-tags" %>)

       <s:form action="save">

              <s:hidden name="userId"></s:hidden>

              <s:textfield name="userName" label="UserName"></s:textfield>

              <s:password name="password" label="PassWord" showPassword="true"回显></s:password>

              <s:textarea name="desc" label="Desc"></s:textarea>

              <s:submit></s:submit>

       </s:form>

Struts.xml

<action name="save" class="zzh.struts2.com.UserAction" method="save">

       <result name="input">/form-tag.jsp</result>

</action>

publicclass UserAction {

       private String userId;

       private String userName;

       private String password;

       private String desc;

<getter/setter>

       public String save() {

              System.out.println(this);

              return"input";

       }

2. htmlform相比

Ø  Struts2form标签会生成一个table,自动排版

Ø  可以对表单进行自动回显

3.     测试回显

回显是吧栈顶对象开始匹配属性,并把匹配的属性值辅导对应的标签的value中,若栈顶对象中没有对应的属性,则一次向下寻找

表单回显测试代码

       public String save() {

              System.out.println(this);

             

              UserAction uAction = new UserAction();

              uAction.setDesc("Oracle");

              uAction.setUserId("1001");

              uAction.setPassword("122121");

              uAction.setUserName("ATGUIGU");

             

              ActionContext.getContext().getValueStack().push(uAction);

             

              return"input";

       }

五、选择

5.1checkbox

<s:checkbox name="married"

             label="Married"

             fieldValue="sss"></s:checkbox>

三个属性。其中如果有fieldValue则提交表单中checkbox的值为sss如果没有fieldValue则为true/false

5.2checkboxlist

Ø  ListlistKeylistValue

Ø  OGNL赋值

Ø  Map赋值

Ø  List赋值

<s:radio name="gender" list="#{'1':'Male','0':'Female'}" label="Gender"></s:radio>

<!—服务端需要使用集合类型,以保证能够正常的回显-->不用数组,用集合

<s:checkboxlist name="citys"

       list="#request.citys" listKey="cityId" listValue="cityName"

       label="City"></s:checkboxlist>

5.3 select

<s:select name="age" label="Age"list="{11,12,13,14,15,16,17,18,19,20}"

       headerKey="" headerValue="请选择">

<s:optgroup label="21-30" list="#{21:21,22:22,222:333 }">

</s:optgroup>

    <s:optgroup label="31-40" list="#{31:31,32:32,222:333 }">

</s:optgroup>

</s:select>

<s:optgroup>可以用做s:select 的子标签,必须是键值对

六、form-tag.jsp

<%

              List<City> cities = new ArrayList<City>();

              cities.add(new City(1,"北京"));

              cities.add(new City(2,"南京"));

              cities.add(new City(3,"太原"));

              cities.add(new City(4,"西安"));

             

              request.setAttribute("cities", cities);

       %>

      

       <s:debug></s:debug>

      

       <s:form action="save">

              <s:hidden name="userId"></s:hidden>

              <s:textfield name="userName" label="UserName"></s:textfield>

              <s:password name="password" label="PassWord" showPassword="true"></s:password>

              <s:textarea name="desc" label="Desc"></s:textarea>

             

              <s:checkbox name="married" label="Married"></s:checkbox>

             

              <s:radio name="gender" list="#{'1':'Male','0':'Female'}" label="Gender"></s:radio>

             

              <s:checkboxlist name="cities"

              list="#request.cities" listKey="cityId" listValue="cityName"

              label="City"></s:checkboxlist>

             

              <s:select name="age" label="Age" list="{11,12,13,14,15,16,17,18,19,20}"

              headerKey="" headerValue="请选择">

                     <s:optgroup label="21-30" list="#{21:21,22:22,222:333 }"></s:optgroup>

                     <s:optgroup label="31-40" list="#{31:31,32:32,222:333 }"></s:optgroup>

             

              </s:select>

             

              <s:submit></s:submit>

       </s:form>

 七、主题

7.1修改主题:

Ø  整体:在<s:form action=”emp-save” theme=”simple”></s:form>

Ø  局部:不多见

Ø  在域对象中

    <%

       request.setAttribute("theme", "simple");

    %>

Ø  全局的:在struts.xml中修改

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

7.2 主题类型

Ø  Simple

Ø  Xhtml

Ø  Css

Ø  Ajax


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值