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

我不知道为什么空值

呼延修然
2023-03-14

>

  • 控制器

    @Controller
    public class BoardController {
         @Autowired
         private BoardServiceimpl boardService;
    
         @GetMapping("/")
         public String registerForm(Board board,Model model) throws Exception{
             List<Board> boardlist = boardService.listboard(board);
    
             model.addAttribute("boardlist",boardlist);
             return "register";
    
         }
         @PostMapping("/register")
         public String register(Board board,Model model) throws Exception{
             boardService.insertboard(board);
    
             List<Board> boardlist = boardService.listboard(board);
             model.addAttribute("boardlist",boardlist);
             return "register";
    
         }
         @RequestMapping(value="/writer")
         public String writerForm(Board board) throws Exception{
    
    
             return "writer";
         }
         @GetMapping("/delete")
         public void deleteForm(Long boardNo, HttpServletRequest request) throws Exception{
             System.out.println(boardNo);
              boardService.deleteboard(boardNo);
              System.out.println(boardNo);
    
         }
    

    }

    服务

     @Service
      public class BoardServiceimpl {
          @Autowired
          private BoardRepository boardRepository;
    
          public List listboard(Board board) throws Exception{
              List<Board> boardlist = boardRepository.findAll();
              return boardlist;
          }
    
          public void  insertboard(Board board) throws Exception{
              boardRepository.save(board);
    
          }
          @Transactional
          public void deleteboard(Long boardNo) throws Exception{
              boardRepository.deleteById(boardNo);
          }
      }
    

    -板

    @Getter
    @Setter
    @EqualsAndHashCode(of="boardNo")
    @ToString
    @Entity
    @Table(name="board")
    
    
     public class Board {
                
                @Id
                @GeneratedValue(strategy=GenerationType.IDENTITY)
                private Long boardNo;
                @Column(length=300)
                @NonNull
                private String title;
                @Column(length=300)
                @NonNull
                private String writer;
                @Column(length=500)
                @NonNull
                private String content;
                
                private LocalDateTime regDate;
        }
      
    

    >

     <html xmlns:th = "http://www.thymeleaf.org">
     <head>
     <meta charset="utf-8">
     <title>Board</title>
     <script src = "/js/jQuery-3.6.0.min.js"></script>
     <script>
    
          $(document).ready(function(){
              var objform = $("#inner");
                 console.log(objform);
              $("#remove").on("click",function(){
             objform.attr("action","/delete");
             objform.submit();
          });
         });``
    
     </script>
     </head>
     <body>
     <form id = "inner" th:object="${board}" action="/delete">
     <input type ="hidden" name="boardNo" th:field="*{boardNo}" />
     <table align="center" border="1" width="80%">
    
     <tr height="10" align="center" bgcolor="skyblue">
         <th width="30">글번호</th>
         <th width="70">작성자</th>
         <th width="150">제목</th>
         <th width="200">내용</th>
         <th width="100">작성일</th> 
         <th width="50">삭제</th>
         </tr>
         <tr align ="center" th:each="board : ${boardlist}">
             <td  th:text="${board.boardNo}"></td>
             <td th:text="${board.writer}"></td>
             <td th:text="${board.content}"></td>
             <td th:text="${board.title}"></td>
             <td th:text="${board.regDate}"></td>
    
             <td><button type="submit" id="remove">삭제</button></td>
    
             </tr>
     </table>
     </form>
    
    
         <a href = "writer.html" th:href="@{writer}">글쓰기</a>
     </body>
     </html>
    

    原因:java。lang.IllegalArgumentException:给定的id不能为null!位于组织。springframework。util。明确肯定组织中的notNull(Assert.java:201)。springframework。数据html" target="_blank">jpa。存储库。支持简单Parepository。java上的deleteById(SimpleJpaRepository.java:166)。基本/jdk。内部的反映NativeMethodAccessorImpl。在java上调用0(本机方法)。基本/jdk。内部的反映NativeMethodAccessorImpl。在java上调用(NativeMethodAccessorImpl.java:77)。基本/jdk。内部的反映DelegatingMethodAccessorImpl。在java上调用(DelegatingMethodAccessorImpl.java:43)。基本/java。lang.reflect。方法在org调用(方法java:568)。springframework。数据存储库。果心支持RepositoryMethodInvoker$RepositoryFragmentMethodInvoker。org上的lambda$new$0(RepositoryMethodInvoker.java:289)。springframework。数据存储库。果心支持RepositoryMethodInvoker。doInvoke(RepositoryMethodInvoker.java:137)位于org。springframework。数据存储库。果心支持RepositoryMethodInvoker。在org调用(RepositoryMethodInvoker.java:121)。springframework。数据存储库。果心支持RepositoryComposition$RepositoryFragments。在org调用(RepositoryComposition.java:529)。springframework。数据存储库。果心支持存储组合。在org调用(RepositoryComposition.java:285)。springframework。数据存储库。果心支持RepositoryFactorySupport$ImplementationMethodExecutionInterceptor。在org调用(RepositoryFactorySupport.java:639)。springframework。aop。框架ReflectiveMethodInvocation。继续(ReflectiveMethodInvocation.java:186)访问org。springframework。数据存储库。果心支持查询ExecutorMethodInterceptor。doInvoke(QueryExecutorMethodInterceptor.java:163)位于org。springframework。数据存储库。果心支持QueryExecutorMethodInterceptor。在org调用(QueryExecutorMethodInterceptor.java:138)。springframework。aop。框架ReflectiveMethodInvocation。继续(ReflectiveMethodInvocation.java:186)访问org。springframework。数据预测DefaultMethodInvokingMethodInterceptor。在org上调用(DefaultMethodInvokingMethodInterceptor.java:80)。springframework。aop。框架ReflectiveMethodInvocation。继续(ReflectiveMethodInvocation.java:186)访问org。springframework。交易拦截器。TransactionInterceptor 1美元。org上的proceedWithInvocation(TransactionInterceptor.java:123)。springframework。交易拦截器。TransactionSpectSupport。在org上调用withintransaction(transactionspectsupport.java:388)。springframework。交易拦截器。TransactionInterceptor。在组织中调用(TransactionInterceptor.java:119)。springframework。aop。框架ReflectiveMethodInvocation。继续(ReflectiveMethodInvocation.java:186)访问org。springframework。道。支持PersistenceExceptionTranslationInterceptor。调用(PersistenceExceptionTranslationInterceptor.java:137)。。。71个以上

    我不知道为什么当我通过html(Form)时它不通过。

  • 共有1个答案

    淳于凯
    2023-03-14

    html中存在一些结构问题。您正在迭代boardList,但在删除对象期间,您没有使用boardList对象中的一个作为参数。此外,您不需要具有onClick函数。您可以通过

    你应该有这种表单结构。

    HTML:

    <tr align ="center" th:each="board : ${boardlist}">
        <td  th:text="${board.boardNo}"></td>
        <td th:text="${board.writer}"></td>
        <td th:text="${board.content}"></td>
        <td th:text="${board.title}"></td>
        <td th:text="${board.regDate}"></td>
    
        <td><a th:href="@{/delete/{boardNo}(id=${board.boardNo})}"</a></td>
    
    </tr>
    

    控制器:

        @GetMapping("/delete/{boardNo}")
        public void deleteForm(@PathVariable(value = "boardNo") Long boardNo, Model model) throws Exception{
            System.out.println(boardNo);
             boardService.deleteboard(boardNo);
             System.out.println(boardNo);
        
        }
    

    您应该看看这个讨论-如何删除Thymeleaf th上的对象:每次迭代都会将一个ID传递给控制器?

     类似资料:
    • 我想发送用户的电子邮件检查副本 这是我的背部控制器 这是我的前控制器 这是我的观点 当我使用“console.log”检查时,前端控制器可以正确地获取用户的电子邮件。但是在后面的控制器中,RequestParam什么都没有,只有NULL没有错误代码,除了'nullPointerException'。 我想这不是沟通错误。我是不是错过了什么?谢了!

    • 不管我怎么努力,页面都被缓存了。因此,php函数运行一次后,总是显示缓存的结果,直到您按下Shift F5 > 我禁用了奥普卡什(在 phpinfo()上不再有奥普卡切了) 我禁用了APC(phpinfo()上不再有APC) 我使用了标题 Cache-Control:no-store,no-cache,必须重新验证"); // HTTP/1.1标头(Cache-Control:post-check

    • 我试图在我的网站上创建一个画廊,我把它们都设置为盘旋时增加大小。唯一的问题是,即使它们的尺寸增加,它们旁边的图像也会显示在增加的图像之上。 以下是HTML: 这是我的剧本: 这是我的CSS: 我试图增加和减少z指数,认为这会有所帮助。但没有这样的运气。

    • 抱歉,如果不允许这样做。这是我第一次问问题。无论如何,我应该实现一个程序,根据文本读取等级。 “实施一个程序,根据以下内容计算理解某些文本所需的大致年级水平。文本:恭喜!今天是你的一天。你要去很棒的地方!你走了,走了!3 年级 在完成代码之后。每次我编译它时,它都会给我一个异常,即我除以零。几乎就像在我要求用户输入文本后,它根本不被读取,字母计数保持在零。我不知道如何绕过它。下面是我导入java.

    • 我拿不到输出。。有人能帮我得到输出吗 下面给出了程序运行的示例(注意:下面的粗体文本是用户输入的输入): 输入三角形的三条边

    • 我试图在我的网站上创建一个画廊,我把它们都设置为盘旋时增加大小。唯一的问题是,即使它们的尺寸增加,它们旁边的图像也会显示在增加的图像之上。 以下是HTML: 这是我的剧本: 这是我的CSS: 我试图增加和减少z指数,认为这会有所帮助。但没有这样的运气。 ****编辑****我解决了这个问题。把这个问题留给未来的人去看。在javascript中,我必须将div设置为更改z索引,而不是图片本身。解决方