RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-284485

Денис Короленко's questions

Martin Hope
Денис Короленко
Asked: 2022-07-04 20:51:30 +0000 UTC

Bean 名称“adDto”的 BindingResult 和普通目标对象都不能用作请求属性

  • 0

应用程序找不到与表单上指定的属性匹配的对象。我是新来的。我会很感激!

控制器:

    @GetMapping("/ads/{id}/edit")
public String adEdit(@PathVariable(value = "id") int id, Model model) {
    List<Platform> platforms = platformRepository.findAll();
    Ad ad = adRepository.findById(id).orElseThrow(() ->
            new ResponseStatusException(HttpStatus.NOT_FOUND,
                    "Ad having id " + id + " not found"));
    model.addAttribute("platforms", platforms);
    model.addAttribute("ad",ad);
    return "ad-edit";
}

@PostMapping("/ads/{id}/edit")
public String adUpdate(@PathVariable(value = "id") int id, @RequestBody AdDTO adDto,
                       Model model) {
    Ad ad = adRepository.findById(id).orElseThrow(() ->
            new ResponseStatusException(HttpStatus.NOT_FOUND,
                    "Ad having id " + id + " not found"));
    ad.setPlatforms((platformRepository.findAllById(adDto.platformsIds)));
    ad.setName(adDto.getName());
    ad.setAssetUrl(adDto.getAssetUrl());
    adRepository.save(ad);
    return "redirect:/ads";
}

ATT:

public class AdDTO {
public int id;
public String name;
public String assetUrl;
public Status status;
public Campaign campaign;
public Set<Integer> platformsIds;

HTML:

<!DOCTYPE html>
<html>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet"
      integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous">
<link rel="stylesheet" href="/css/style.css"/>
<head>
    <meta charset="UTF-8">
    <title>Редактирование обьявления</title>
</head>
<body>
<header>
    <nav class="navbar navbar-light bg-light">
        <form class="container justify-content-start">
            <h3 class="caption">Редактирование обьявления <span th:text="${ad.name}"></span></h3>
            <button class="navbar-toggler" type="button">
                <a href="../home.html" th:href="@{/home}">На главную</a></button>
            <button type="button" class="btn btn-light">
                <a href="../info.html" th:href="@{/info}">Обе SQL Таблицы</a></button>
            <button type="button" class="btn btn-light">
                <a href="../ads.html" th:href="@{/ads}">Обьявления</a></button>
            <button type="button" class="btn btn-light">
                <a class="link" href="../campaigns.html" th:href="@{/campaigns}">Кампании</a></button>
        </form>
    </nav>
</header>
<!--<div th:object="${adDto}"  class="container justify-content-start">-->
    <form th:object="${adDto}" th:action="@{/ads/{id}/edit}" method="post">
        <input type="text" th:value="${ad.name}" th:field="*{adDto.name}"

               placeholder="Введите название обьявления" class="form-control">

        <input type="text" th:value="${ad.assetUrl}" th:field="*{adDto.assetUrl}"

               placeholder="Введите ссылку на рекламу" class="form-control">
        <!--        <h6>id кампании </h6> <h6 th:value="${el.campaign.id}"></h6>-->
        <select class="form-control" th:field="*{adDto.platformsIds}" multiple="multiple">
            <div> <option th:each="platform : ${platforms}"
                    th:value="${platform.id}"
                    th:text="${platform.name}"
                    th:selected="${adDto.platformsIds.contains(platform.id)}">
            </option> </div>
        </select>
        <button type="submit" class="btn btn-success">Редактировать</button>
    </form>
<!--</div>-->
</body>
</html>

在此处输入图像描述

spring-mvc
  • 1 个回答
  • 10 Views
Martin Hope
Денис Короленко
Asked: 2020-01-11 00:05:50 +0000 UTC

对 Map() 的输出进行排序和格式化

  • 0

有一个方法:

public void ShowRacingResults(String folderPath) {
    Map<String, String> abbreviationsMap = ConvertFileToMap(folderPath + "/abbreviations.txt");
    Map<String, String> resultMap = CalculateResults(folderPath);
    int place = 1;
    for (String s : resultMap.keySet())
        for (String k : abbreviationsMap.keySet())
            if (s.equals(k)) {
                System.out.println(place + ". " + abbreviationsMap.get(k).split("_")[0] + " | "
                        + abbreviationsMap.get(k).split("_")[1] + " | " + resultMap.get(s));
                place++;
            } else if (s.equals(k) & place == 16) {
                System.out.println("------------------------------------------------------------------------"
                        + "\n" + place + ". " + abbreviationsMap.get(k).split("_")[1] + " | "
                        + abbreviationsMap.get(k).split("_")[2] + " | " + resultMap.get(s));
                place++;
            }
}

最终将结果输出为:

  1. 瓦尔特利·博塔斯 | 梅赛德斯| 1:12.434
  2. 塞巴斯蒂安·维特尔 | 法拉利 | 1:04.415
  3. 卡洛斯·塞恩斯 | 雷诺 | 1:12.950
  4. 丹尼尔·里卡多 | 红牛赛车 TAG HEUER | 1:12.013
  5. 凯文马格努森 | 哈斯法拉利 | 1:13.393
  6. 塞尔吉奥佩雷斯 | FORCE INDIA MERCEDES | 1:12.848
  7. 斯托菲尔·范多恩 | 迈凯轮雷诺 | 1:12.463
  8. 查尔斯·勒克莱尔 | 索伯法拉利 | 1:12.829
  9. 布兰登哈特利 | SCUDERIA TORO ROSSO HONDA | 1:13.179
  10. 刘易斯·汉密尔顿 | 梅赛德斯| 1:12.460
  11. 兰斯漫步 | 威廉姆斯奔驰 | 1:13.323
  12. 罗曼·格罗斯让 | 哈斯法拉利 | 1:12.930
  13. 费尔南多·阿隆索 | 迈凯轮雷诺 | 1:12.657
  14. 谢尔盖·西罗特金 | 威廉姆斯奔驰 | 1:12.706
  15. 尼科·霍肯伯格 | 雷诺 | 1:13.065
  16. 马库斯·爱立信 | 索伯法拉利 | 1:13.265
  17. 埃斯特班奥康 | FORCE INDIA MERCEDES | 1:13.028
  18. 皮埃尔·加斯利 | SCUDERIA TORO ROSSO HONDA | 1:12.941
  19. 基米莱科宁 | 法拉利 | 1:12.639

请告诉我如何使用排序时间输出结果,如下所示:

需要“|”  在每条线上都处于同一水平,并且在第 15 名骑手之后有一个分隔的“----”

java
  • 2 个回答
  • 10 Views
Martin Hope
Денис Короленко
Asked: 2020-01-08 23:44:34 +0000 UTC

HH:mm:ss:SSS 格式的时差

  • 0

请告诉我如何计算 String 类型的时间差,例如 12:07:32.434 和 11:01:11.413 应该是 01:06:21.021 非常感谢您的反馈!!!

java
  • 2 个回答
  • 10 Views
Martin Hope
Денис Короленко
Asked: 2020-09-09 22:37:22 +0000 UTC

运行测试时抛出 NullPointerException

  • 0

应用程序进行长除法并将整个过程打印到控制台。一切正常,测试通过,问题是当测试运行时,它会抛出 NullPointerException。我不明白在哪里以及如何处理它。NPE 在测试代码的倒数第二行弹出(String actual = subject.divide(256, 8);)。这是NPE:

`java.lang.NullPointerException
`at DivisionServiceTest.divide(DivisionServiceTest.java:30)
`at java.base/java.util.ArrayList.forEach(ArrayList.java:1380)
`at java.base/java.util.ArrayList.forEach(ArrayList.java:1380)

这是代码:

public class Division implements DivisionService {

private StringBuilder result = new StringBuilder();
private StringBuilder quotient = new StringBuilder();
private StringBuilder reminder = new StringBuilder();

public String divide(long dividend, long divider) throws IllegalArgumentException {

    if (divider == 0) {
        return "Divider cannot be 0, division by zero";
    }

    long absDividend = Math.abs(dividend);
    long absDivider = Math.abs(divider);

    if (absDividend < absDivider) {
        return "Dividend less than divider. Column Division isn't possible";
    }

    String[] dividentAsArray = String.valueOf(absDividend).split("");

    Integer reminderAsDigit;
    long multiplyResult;

    Integer dividerDigit = calculateDigit(absDivider);
    long mod;

    for (int i = 0; i < dividentAsArray.length; i++) {
        reminder.append(dividentAsArray[i]);
        reminderAsDigit = Integer.parseInt(reminder.toString());

        if (reminderAsDigit >= absDivider) {
            mod = reminderAsDigit % absDivider;
            multiplyResult = reminderAsDigit / absDivider * absDivider;

            String lastReminder = String.format("%" + (i + 2) + "s", "_" + reminderAsDigit.toString());
            result.append(lastReminder).append("\n");

            String multiply = String.format("%" + (i + 2) + "d", multiplyResult);
            result.append(multiply).append("\n");

            Integer tab = lastReminder.length() - calculateDigit(multiplyResult);
            result.append(makeDivider(reminderAsDigit, tab)).append("\n");

            quotient.append(reminderAsDigit / absDivider);

            reminder.replace(0, reminder.length(), Long.toString(mod));
            reminderAsDigit = Integer.parseInt(reminder.toString());
        } else {
            if (i >= dividerDigit) {
                quotient.append(0);
            }
        }

        if (i == dividentAsArray.length - 1) {
            result.append(String.format("%" + (i + 2) + "s", reminderAsDigit.toString())).append("\n");
        }
    }

    modifyResultToView(absDividend, absDivider);

    if (dividend > 0 && divider < 0) {
        result.insert(0, "-");
        return result.toString();
    }
    if (dividend < 0 && divider > 0) {
        result.insert(0, "-");
        return result.toString();
    } else return result.toString();
}

private String makeDivider(Integer reminderNumber, Integer tab) {
    return assemblyString(tab, ' ') + assemblyString(calculateDigit(reminderNumber), '-');
}

private void modifyResultToView(long dividend, long divider) {
    int[] index = new int[3];
    for (int i = 0, j = 0; i < result.length(); i++) {
        if (result.charAt(i) == '\n') {
            index[j] = i;
            j++;
        }

        if (j == 3) {
            break;
        }
    }

    int tab = calculateDigit(dividend) + 1 - index[0];
    result.insert(index[2], assemblyString(tab, ' ') + "│" + quotient.toString());
    result.insert(index[1], assemblyString(tab, ' ') + "│" + assemblyString(quotient.length(), '-'));
    result.insert(index[0], "│" + divider);
    result.replace(1, index[0], Long.toString(dividend));
}

private int calculateDigit(long i) {
    return (int) Math.log10(i) + 1;
}

private String assemblyString(int numberOfSymbols, char symbol) {
    StringBuilder string = new StringBuilder();
    for (int i = 0; i < numberOfSymbols; i++) {
        string.append(symbol);
    }
    return string.toString();
}
}

这是测试:

import org.junit.Before;
import org.junit.jupiter.api.Test;

import static org.junit.Assert.assertEquals;

public class DivisionServiceTest {`введите сюда код`

private DivisionService subject;

@Before
public void initSubject() throws Exception {
    subject = new Division();
}

@Test
public void divide() {

        /* Given */
        String expected =
                " 256 | 8\n" +
                        "-    |---\n" +
                        " 24  | 32\n" +
                        " --\n" +
                        " _16\n" +
                        "  16\n" +
                        "  --\n" +
                        "   0\n";

        /* When */
        String actual = subject.divide(256, 8);

        /* Then */
        assertEquals(expected, actual);
}
}
java
  • 1 个回答
  • 10 Views
Martin Hope
Денис Короленко
Asked: 2020-03-15 20:53:05 +0000 UTC

爪哇。请告诉我运算符按相反的 eq​​uals() 值比较字符串

  • 0

否则如果(选择!=(“1”|“2”|“3”))

select, "1", "2" 和 "3" 是 String 类型,所以 != 不适合

java
  • 2 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5