假设我有一个列出表中对象的页面,我需要放置一个表单来过滤表.过滤器作为Ajax GET发送到如下URL:http://foo.com/system/controller/action?page = 1&prop1 = x&prop2 = y&prop3 = z
而不是在我的控制器上有很多参数,如:
@RequestMapping(value = "/action")
public @ResponseBody List<MyObject> myAction(
@RequestParam(value = "page", required = false) int page,
@RequestParam(value = "prop1", required = false) String prop1,
@RequestParam(value = "prop2", required = false) String prop2,
@RequestParam(value = "prop3", required = false) String prop3) { ... }
Run Code Online (Sandbox Code Playgroud)
假设我有MyObject:
public class MyObject {
private String prop1;
private String prop2;
private String prop3;
//Getters and setters
...
}
Run Code Online (Sandbox Code Playgroud)
我想做的事情如下:
@RequestMapping(value = "/action") …Run Code Online (Sandbox Code Playgroud) 我知道......我知道......性能不是这里的主要关注点,但只是出于好奇,哪个更好?
bool parsed = int.TryParse(string, out num);
if (parsed)
...
Run Code Online (Sandbox Code Playgroud)
要么
try {
int.Parse(string);
}
catch () {
do something...
}
Run Code Online (Sandbox Code Playgroud) 我在VS2010上使用ReSharper插件,我正在生成一个接口方法.ReSharper在参数名称上加了@.那用的是什么?
int Count(Func<ContratoList, bool> @where);
Run Code Online (Sandbox Code Playgroud)
什么是差异
int Count(Func<ContratoList, bool> where);
Run Code Online (Sandbox Code Playgroud)
谢谢!
我的应用程序有一个Maven测试项目.
JUnit测试运行正常,代码覆盖率测试也运行.
但该报告始终显示0%的代码覆盖率.
我该怎么办?
检索位或char(1)有什么性能差异吗?
只是为了好奇=]
更新:我正在使用SQL Server 2008!
我的实体有一个自定义的Hibernate验证器.我的一个验证器使用Autowired Spring @Repository.应用程序正常工作,我的存储库在我的验证器上成功自动装配.
问题是我找不到测试验证器的方法,因为我无法在其中注入我的存储库.
Person.class:
@Entity
@Table(schema = "dbo", name = "Person")
@PersonNameMustBeUnique
public class Person {
@Id
@GeneratedValue
@Column(name = "id", unique = true, nullable = false)
private Integer id;
@Column()
@NotBlank()
private String name;
//getters and setters
//...
}
Run Code Online (Sandbox Code Playgroud)
PersonNameMustBeUnique.class
@Target({ TYPE, ANNOTATION_TYPE })
@Retention(RUNTIME)
@Constraint(validatedBy = { PersonNameMustBeUniqueValidator.class })
@Documented
public @interface PersonNameMustBeUnique{
String message() default "";
Class<?>[] groups() default {};
Class<? extends javax.validation.Payload>[] payload() default {};
}
Run Code Online (Sandbox Code Playgroud)
验证者:
public class PersonNameMustBeUniqueValidatorimplements ConstraintValidator<PersonNameMustBeUnique, Person> {
@Autowired
private …Run Code Online (Sandbox Code Playgroud) 我有一个XML:
<?xml version="1.0" encoding="utf-16"?>
<ExportProjectDetailsMessage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Project">
<CPProjectId>7665699f-6772-424c-8b7b-405b9220a8e7</CPProjectId>
</ExportProjectDetailsMessage>
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下方法将CPProjectId作为Uniqueidentifier:
DECLARE @myDoc xml
DECLARE @ProdID varchar(max)
SET @myDoc = '<ExportProjectDetailsMessage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Project"><CPProjectId>7665699f-6772-424c-8b7b-405b9220a8e7</CPProjectId></ExportProjectDetailsMessage>'
SET @ProdID = @myDoc.value('(ExportProjectDetailsMessage/CPProjectId)[1]', 'varchar(max)' )
SELECT @ProdID
Run Code Online (Sandbox Code Playgroud)
我只能收到的是NULL = /我在@ myDoc.value上尝试了很多组合,但没有结果= /
如何从XML中检索值?
谢谢!
--EDIT:我注意到的东西,当我从XML中删除命名空间声明时,它工作正常!问题是我需要这个命名空间!= /
我正在尝试做一个控制器,为DataTables做服务器端。
@RequestMapping(value="/grid", method={RequestMethod.GET}, produces= MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public DataTablesResponse<MyObject> grid(DataTablesRequest dt) {
return service.getListOfMyObjects();
}
Run Code Online (Sandbox Code Playgroud)
DataTablesRequest.class:
public class DataTablesRequest {
private int draw;
private int start;
private int length;
private Search search;
private List<Order> order;
private List<Column> columns;
//... Getters and setters
}
Run Code Online (Sandbox Code Playgroud)
Order.class:
public class Order {
private String column;
private String dir;
//...getters and setters
}
Run Code Online (Sandbox Code Playgroud)
列类
public class Column {
private String data;
private String name;
private boolean searchable;
private boolean orderable;
private Search search;
//...Getters and setters …Run Code Online (Sandbox Code Playgroud) spring spring-mvc datatables jquery-datatables datatables-1.10
我有3张桌子.元数据,规则和NxN关系MetadataRules.
我正在插入元数据,我的对象包含从DB检索的规则列表.
myMetadata.Rules = myListOfrules;
Run Code Online (Sandbox Code Playgroud)
当我执行插入时,myListOfRules中的所有规则都在Rules表中重复,而不是仅创建关系.我插入它:
public static void InserirTipoMetadata( TA_TIPO_METADATA tipoMetadata ) {
using ( EnterpriseContext context = new EnterpriseContext() ) {
context.TipoMetadata.AddObject(tipoMetadata);
context.SaveChanges(System.Data.Objects.SaveOptions.DetectChangesBeforeSave);
}
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做才不重复规则?
谢谢!
我有一个Spring Boot Web应用程序和一些与硒一起运行的集成测试。我所有的集成测试都继承自:
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT, classes = EaudApplication.class)
@ActiveProfiles(value = "default,teste")
public abstract class BootIntegracaoTest {
@Autowired public Environment env;
static {
System.setProperty("webdriver.chrome.driver",
SystemUtils.IS_OS_WINDOWS ? "target/test-classes/chromedriver_win32.exe" : "target/test-classes/chromedriver_linux64");
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
ChromeDriver driver = new ChromeDriver(options);
SeleniumQuery.$.driver().use(driver);
Runtime.getRuntime().addShutdownHook(new Thread(() -> $.driver().quit()));
}
}
Run Code Online (Sandbox Code Playgroud)
如果我取消--headless参数,则测试将在正常时间运行。毫无头绪的争论,它确实可以运行。
我启用了chromedriver日志,等待某些请求时似乎很慢: [17.289][INFO]: Waiting for pending navigations...
我正在使用Selenium 2.53.1和ChromeDriver:2.32
我也尝试了很多铬标志,但没有成功。如果有人有任何类似的问题可以帮助您,谢谢。
c# ×3
spring ×3
java ×2
spring-mvc ×2
sql ×2
sql-server ×2
.net ×1
datatables ×1
eclemma ×1
parsing ×1
performance ×1
resharper ×1
selenium ×1
spring-boot ×1
t-sql ×1
testing ×1
tryparse ×1
validation ×1
xml ×1