iterator在struts2中无法体现效果的原因+form表单提交乱码的原因可能

form表单提交乱码的原因可能

1.对于action的使用struts是否加上了s:

2.utf-8的使用

3.servlet的过滤
4.web.xml的配置
5.pageEncoding
接收端
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
数据输出端

<%@ page language="java" contentType="text/html; charset=utf-8"%>


迭代器在jsp页面使用的错误的原因(可能)总结
1.jsp页面没写<%@taglib prefix="s" uri="/struts-tags"%>
2.!!!没有对于前后端有数据交换的数据制作get方法
如,get ,set函数造成前端和后台没有权限数据交换

3.s:iterator
在jsp中通过iterator对于list<E>或者是Map<T>中的元素进行简单便利,但是如果是List<List<E>>呢,这就涉及到了iterator的双层迭代,不过在进入这一部分之前呢,我们首先学习一下在简单的list<E>时在jsp中使怎么遍历的,
1
2
3
4
5
6
7
8
9
10
11
<!--iterator 说明
     * 当前迭代的元素在栈顶
     * 如果value的值为top,则默认迭代栈顶元素
     * 如果value属性不写,则认为是迭代栈顶元素
   -->
   < s:iterator  value="#session.list" var="list">
      < td >< s:property   value="#list.dname"/></ td >
       < td >< s:property   value="#list.description"/></ td >
       < td >< a  onclick="delete()">删除</ a >
        < td >< a  onclick="update()">修改</ a >
   </ s:iterator  >
 但是如果是list集合中存着list呢,也就是List<List<E>>,这时候就需要用到双层迭代器,看代码:
1
2
3
4
5
6
7
8
< s:iterator  >
      < s:iterator  >
      < td >< s:property   value="#list.dname"/></ td >
       < td >< s:property   value="#list.description"/></ td >//list前面需要加#
       < td >< a  onclick="delete()">删除</ a >
        < td >< a  onclick="update()">修改</ a >
   </ s:iterator  >
   </ s:iterator >
 通过上面的双层迭代器可以迭代出存在list集合中的list中的元素,当然还有一种情况就是,llist集合中放map集合,也就是List<Map<E>>,如果是这样的话,如果想迭代出list集合中存的map集合中的元素,就应该这么迭代:
1
2
3
4
5
6
< s:iteraor   value="#list">
     < s:iterator  value="top">
              < s:property   value="key"/>
                < s:property   value="value.dname"/>//map不用加#
     </ s:iterator >
  </ s:iterator >
 说到这,我们也把最后一种情况表述一下,那就是map集合中放着list集合,也就是Map<List<E>>,那像这样的存储方式的话就应该像下面这样的方式去迭代:
1
2
3
4
5
6
7
8
9
<!--map中含有list-->
     < s:iterator  value="#map">
        < s:property  value="key"/>
         <!--该迭代就是一个list-->
           < s:iterator  value="value">
                < s:property   value="dname"/>
                 < s:property  value="description"/>
           </ s:iterator >
     </ s:iterator >
所以在不同的集合中和不同的集合组合中,要通过不一样的迭代组合才能很好地遍历出所存储的元素


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值