当前位置: 首页 > 知识库问答 >
问题:

如何使用Thymeleaf发布实体类型数据列表?

欧阳杰
2023-03-14

我的项目基于springboot、Thymeleaf、mysql、html和Jquery。

场景我的场景是使用Thyemeleaf并点击Spring boot@RestController发布EntSetCharges数据列表。以前我处理过这个错误错误错误1:错误2:现在又出现了一个错误

2017-11-22 14:58:19.717错误1420---[nio-8080-exec-1]o. a. c. c.C.[.[.]Servlet.service()的servlet[调度Servlet]在上下文中与路径[]抛出异常[请求处理失败;嵌套异常是org.thymeleaf.exceptions.TemplateProcessingExc0019:异常评估SpringEL表达式:"temEntSetChargesList[0]. chargesName"(模板:"SetCharges"-行37, col91)]与根本原因org.springframework.expression.spel.SpelEvalue ationExc0019: EL1025E:集合有'0'元素,索引'0'无效

该行表示HTML代码是表的第一列

th: field="*{temEntSetChargesList[__${status.index}__]. chargesName}"

我仍然无法将数据发布到控制器。。请帮帮我。。

<form id="setchargesformid" method="post" th:object="${wrpSetCharges}" th:action="@{/updatesetcharges}">
	<div class="table-responsive"> 
	
	<table class="table table-hover">
	<thead>
	    <tr>
      <th>Charge Name</th>
      <th>Amount</th>
      <th>Charge/Unit Type</th>
    </tr>
    </thead>
    
    <tbody>
    <tr th:each="savedcharges,status:${savedchargeslist}">
     <!--  <td id="colhide" hidden="true">
      <label th:value="${savedcharges.pkSetCharges}" th:field="*{pkSetCharges}" ></label>
      </td> -->
      
      <td>
      <label th:text="${savedcharges.chargesName}" th:value="${savedcharges.chargesName}" th:field="*{tempEntSetChargesList[__${status.index}__].chargesName}"></label>
      </td>
      
      <td>
      <input id="amt1" class="form-control" th:field="*{tempUnitAmount}">
      </td>
      
      <td>
		<select id="societyname" class="form-control" th:field="*{tempunitType}" >
		<option value="perFlat" selected="selected">perFlat</option>
		<option value="perUnit">perUnit</option>
		<option value="perSqrft">perSqrft</option>
		</select>
      </td>
    </tr>
    </tbody>
    
	</table>
	</div>
	
	<button type="submit" class="btn btn-info">Submit</button>
	<button type="reset" class="btn btn-warn">Reset</button>
	</form>

@RestController

@GetMapping(value="/setchargeslist")
    public ModelAndView doGetSetchargesList()
    {
        List<EntSetCharges> listCharges = new ArrayList<>();
        ModelAndView respondResult = new ModelAndView("SetCharges");
        try {
            /*Get the set charges list*/
            listCharges = serSetCharges.doGetSetChargesList();
            if(listCharges!=null)
            {
            respondResult.addObject("savedchargeslist",listCharges);
            //respondResult.addObject("tempEntSetChargesList",new EntSetCharges());
            respondResult.addObject("wrpSetCharges",new WrpSetCharges());
            }
            else
            {
                respondResult.addObject("savedchargeslist",new ArrayList<>());
            }

        } catch (Exception e) {
            // TODO: handle exception
        }
        return respondResult;
    }

单击Submit按钮时,将点击to/updatesetcharges

@PostMapping(value="/updatesetcharges")
public ModelAndView doUpdateSetCharges(@ModelAttribute WrpSetCharges wrpSetCharges)
{
    ModelAndView respondResult = new ModelAndView();
    try {
        List<EntSetCharges> entSetChargesList = new ArrayList<>();
    Boolean result = serSetCharges.doUpdateSetCharges(entSetChargesList);
} catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
        return respondResult;
    }

这是一个包装类

 public class WrpSetCharges {

        private List<EntSetCharges> tempEntSetChargesList = new ArrayList<>();

        public List<EntSetCharges> getTempEntSetChargesList() {
            return tempEntSetChargesList;
        }

        public void setTempEntSetChargesList(List<EntSetCharges> tempEntSetChargesList) {
            this.tempEntSetChargesList = tempEntSetChargesList;
        }
      }

共有1个答案

郎言
2023-03-14

如评论中所述:异常的原因是

“org.springframework.expression.spel.SpelEvaluationException‌​: EL1025E:(位置10):集合具有“0”元素,索引“0”无效

只要在团队中添加th:if条件即可。用户可以有零个元素。

 类似资料:
  • 我从API23改为22,因为他们说httpclient不可用。当我切换到API22时,我遇到了HttpClient、HttpPost和NameValuePair的问题。我找到了使用HttpURLConnectionHandler的解决方案。但是我不知道如何将它用于下面的方法。 有人好心帮我一把

  • 我开发了一个应用程序。在我的应用程序中,我从相机或画廊拍摄一张图像。我想使用多部分发布图像到服务器,但图像不发布它。我的帖子数据如下

  • 问题内容: 我对extJS和json有点陌生。使用extJS来发布json数据的最轻松的方法是什么?我对任何GUI功能都不是很感兴趣,只是使用框架发送一些示例数据。 问题答案:

  • 问题内容: 我使用Ubuntu并在其上安装了cURL。我想用cURL测试我的Spring REST应用程序。我在Java端编写了POST代码。但是,我想用cURL对其进行测试。我正在尝试发布JSON数据。示例数据如下: 我使用以下命令: 它返回此错误: 错误描述是这样的: 服务器拒绝了此请求,因为请求实体的格式不受请求方法()的请求资源支持。 Tomcat日志:“ POST / ui / weba

  • 问题内容: 我想将Json发布到同一服务器上的Web服务。但是我不知道如何使用JQuery发布Json。我已经尝试使用此代码: 但是使用此JQuery代码时,数据不会作为Json在服务器上接收。这是服务器上的预期数据:但是使用JQuery时,服务器receive 。换句话说,它是“ urlencoded”数据,而不是Json。 有什么方法可以使用JQuery以Json格式发布数据,而不是未编码的数

  • 问题内容: 我想将以下(工作)curl代码段转换为RestTemplate调用: 如何正确传递email参数?以下代码导致404 Not Found响应: 我试图在PostMan中制定正确的调用,并且可以通过在主体中将email参数指定为“ form- data”参数来使其正常工作。在RestTemplate中实现此功能的正确方法是什么? 问题答案: POST方法应沿着HTTP请求对象发送。并且该