小编key*_*ger的帖子

将 AddRazorRuntimeCompilation() 添加到 .NET CORE 6 中的容器将破坏 CSS 页脚

我使用 VS 2022 和 .NET Core 6 创建一个全新的 ASP.NET Core MVC 项目。VS 将生成基本模板,当我在不接触任何代码的情况下运行它时,一切都很好。

在此输入图像描述

到目前为止,一切都很好。

现在我添加 NuGet 依赖项Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation版本 6.0.0。

Program.cs文件中,我添加一行

// Add services to the container.
builder.Services.AddControllersWithViews();
builder.Services.AddRazorPages().AddRazorRuntimeCompilation(); //Add this line of code
var app = builder.Build();
Run Code Online (Sandbox Code Playgroud)

重建程序并运行它。现在我看到页脚不再位于页面底部。

这是一个错误还是我在这里做错了什么?谢谢。

在此输入图像描述

asp.net-core-mvc asp.net-core asp.net-core-6.0

11
推荐指数
3
解决办法
2万
查看次数

当对象变量设置为 Private 时,Jackson ObjectMapper 返回 null

我得到了这个转义的 JSON

"{\"UniqueId\":[],\"CustomerOffers\":{},\"Success\":false,\"ErrorMessages\":[\"Test Message\"],\"ErrorType\":\"GeneralError\"}"
Run Code Online (Sandbox Code Playgroud)

我需要使用 Jackson 将其转换为 Java 对象。

// https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.8'
Run Code Online (Sandbox Code Playgroud)

我创建了该类:

public class Data {

    private List<UUID> UniqueId;
    private Map<Integer, List<Integer>> CustomerOffers;
    private Boolean Success;
    private List<String> ErrorMessages;
    private String ErrorType;

    // getter, setters
}
Run Code Online (Sandbox Code Playgroud)

然后我创建了转换它的方法

public class Deserializing {

    public void processing(String input) {

        ObjectMapper mapper = new ObjectMapper();
        mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
        mapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);



        String jsonInString = "\"{\"UniqueId\":[],\"CustomerOffers\":{},\"Success\":false,\"ErrorMessages\":[\"Test Message\"],\"ErrorType\":\"GeneralError\"}\"";
        String newJSON = org.apache.commons.lang3.StringEscapeUtils.unescapeJava(jsonInString);
        newJSON= newJSON.substring(1, jsonInString.length()-1);


            try {
            // JSON string to Java object …
Run Code Online (Sandbox Code Playgroud)

java jackson jackson-databind

6
推荐指数
2
解决办法
2万
查看次数

使用 Jackson 将 JSON 反序列化为 Java 对象:没有从字符串值反序列化的字符串参数构造函数/工厂方法

我有这个序列化的 JSON 作为字符串给我

"{\"UniqueId\":[\"69570d12-598d-4aca-abe9-4d0e7b286fe5\",\"949cd142-3eca-4fd8-b8ea-b681f65c69ca\"],\"CustomerOffers\":{\"137966\":[05],\"137986\":[11],\"137987\":[38]},\"Success\":true,\"ErrorMessages\":[\"No Error\"],\"ErrorType\":\"null\"}"
Run Code Online (Sandbox Code Playgroud)

我需要将它反序列化为 Java 对象。

我创建了这个对象类

public class Data {

    public List<UUID> UniqueId;
    public Map<Integer, List<Integer>> CustomerOffers;
    public Boolean Success;
    public List<String> ErrorMessages;
    public String ErrorType;    

   // Usual Getters and Setters here
}
Run Code Online (Sandbox Code Playgroud)

然后我创建了获取字符串并反序列化它的方法,使用 com.fasterxml.jackson.databind.ObjectMapper

public class Deserializing {

public void processing(String input){

        ObjectMapper mapper = new ObjectMapper();
        mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
        mapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);

        try {

            // JSON string to Java object
            Data data = mapper.readValue(input, Data.class); //This returns exception
            System.out.println(data);

        } catch (IOException e) {
            e.printStackTrace();
        }

    }
    
}
Run Code Online (Sandbox Code Playgroud)

然后主类调用方法。 …

java json jackson jackson-databind

5
推荐指数
0
解决办法
4420
查看次数

为什么“gradle tasks”不显示任务?

我的 build.gradle 文件中只有这个

project.task ("Task1")
task("Task2")
task Task3
Run Code Online (Sandbox Code Playgroud)

我使用的是 Gradle 3.5 版,当我执行时

毕业任务

在命令行中,不显示任何任务。但是当我这样做时

gradle 任务 --all

,然后我可以看到我的任务

project.task ("Task1")
task("Task2")
task Task3
Run Code Online (Sandbox Code Playgroud)

我们是否需要始终使用gradle tasks --all来查看所有任务?在一些教程网站上,他们只是使用gradle tasks,所有任务都会显示出来。想知道我在这里做错了什么。谢谢。

gradle

3
推荐指数
1
解决办法
2984
查看次数

在 JMeter 的 JSR223 断言中获取所有先前的采样器结果(重定向)

我正在使用 JMeter 访问一个 API。我点击的 URI(测试 API-0)将返回 302 Found 并将其重定向到测试 API-1,后者将再次返回 302 Found 并将其重定向到测试 API-2。如果一切正常,测试 API-2 将返回 200 OK。

在此输入图像描述

我想获取Test API-0 、 Test API-1 和 Test API-2 的协议主机路径响应代码。

在 JSR223 Assertion Groovy 语言中,我尝试过

def url = prev.getURL();
def protocol = url.getProtocol();
def host = url.getHost();
def path = url.getPath();

log.info('Full URL: ' + url.toString())
log.info('Protocol: ' + protocol )
log.info('host: ' + host )
log.info('path: ' + path )
Run Code Online (Sandbox Code Playgroud)

但这只会给我测试 API-2(仅限最新的 URI)。

我也尝试过

log.info("Previous …
Run Code Online (Sandbox Code Playgroud)

groovy jmeter jsr223

3
推荐指数
1
解决办法
1815
查看次数

如何使用 Apache Common CSV CSVPrinter 添加新行?

我有一个包含使用Apache Common CSV library 1.5生成 CSV 文件的方法的类

public class CSVGenerator {

    private static final String CSV_FILE = "./credentials.csv";
    private static CSVPrinter csvPrinter;

    public static void generateCSV(String FirstName, String LastName, String DOB) {


        try {
            BufferedWriter writer = Files.newBufferedWriter(Paths.get(CSV_FILE) );

            csvPrinter = new CSVPrinter(writer, CSVFormat.DEFAULT
                    .withHeader("FirstName", "LastName", "DOB"));

            csvPrinter.printRecord(FirstName, LastName, DOB);
            csvPrinter.flush();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的主类中有一个方法,这个方法会调用该方法generateCSV()几次。
如何写入新行并将其附加到现有 CSV 文件中?使用我当前的实现,它将继续覆盖我的第一行。

更直接的解决方案是在任何 Java 集合(数组或列表)中收集我的所有数据,然后在最后迭代集合并将其一次性写入 CSV。但我不会走那条路。我更喜欢将一行写入 CSV ,做其他事情,然后再次调用该方法以写入新行并将其附加到现有的 CSV 中。

谢谢。

java apache-commons-csv

2
推荐指数
1
解决办法
4383
查看次数

如何使用Selenium Webdriver Java查找表行号

我有一个包含多行和多列的表.

HTML代码如下所示:

<!-- language: lang-html -->
    <div id="ScheduleTable-01" class="widget Scheduletable suppress-errors Schedule-grid" data-widget="ScheduleTable">
    <div class="grid-wrapper">
    <table class="nostyles weekmode hourstype fullmonth" style="width: 100%;">
    <thead>
    <tbody>
    <tr id="20631697" class="Schedule-row row0 20631697 key_AuthoriserId-1077_JobId-402704200_TaskId-CON_TsCode-35" data-row-index="0" data-job="402121200,Job XXX">
    <tr id="-499545938" class="Schedule-row row1 -499545938 key_AuthoriserId-1077_JobId-A01200131S_TaskId-CON_TsCode-35" data-row-index="1" data-job="A01763431 Job YYY">
    <tr id="-985929934" class="Schedule-row row2 -985929934 key_AuthoriserId-1277_JobId-I02010171S_TaskId-INT_TsCode-30" data-row-index="2" data-job="I02872371 S,Job ZZZ">
Run Code Online (Sandbox Code Playgroud)

因为它是一个动态网页,所以每次加载页面时,Job YYY都会被放置在不同的行索引中.因此,我想知道Job YYY所在表的哪一行.我可以看到每一行都标有data-row-index,这就是我想要的.

我正在考虑这个Selenium代码

<!-- language: lang-java -->
WebElement mainTable = driver.findElement(By.id("ScheduleTable-01"));
//I am not sure about this part below; findElements …
Run Code Online (Sandbox Code Playgroud)

html java selenium webdriver

1
推荐指数
1
解决办法
9178
查看次数