他们使用此代码检索路由器的参数'id'
并使用它来获取service
服务的英雄:
ngOnInit() {
this.route.params
.switchMap((params: Params) => this.service.getHero(+params['id']))
.subscribe((hero: Hero) => this.hero = hero);
}
Run Code Online (Sandbox Code Playgroud)
但我不太清楚switchMap
在上面的代码中使用运算符的目的是什么.
以下代码不一样?
ngOnInit() {
this.route.params
// NOTE: I do not use switchMap here, but subscribe directly
.subscribe((params: Params) => {
this.service.getHero(+params['id']).then(hero => this.hero = hero)
});
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试从视图文件中获取url参数.
我有这个网址:
http://locahost:8000/example?a=10
Run Code Online (Sandbox Code Playgroud)
和一个名为的视图文件example.blade.php
.
从控制器我可以得到的参数a
用$request->input('a')
.
有没有办法从视图中获取此类参数(无需将其从控制器传递到视图)?
是否有更新的方式只有一些领域使用该方法的实体对象save
从春数据JPA?
例如,我有一个像这样的JPA实体:
@Entity
public class User {
@Id
private Long id;
@NotNull
private String login;
@Id
private String name;
// getter / setter
// ...
}
Run Code Online (Sandbox Code Playgroud)
凭借其CRUD回购:
public interface UserRepository extends CrudRepository<User, Long> { }
Run Code Online (Sandbox Code Playgroud)
在Spring MVC中,我有一个控制器,它获取一个User
对象来进行更新:
@RequestMapping(value = "/rest/user", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<?> updateUser(@RequestBody User user) {
// Assuming that user have its id and it is already stored in the database,
// and …
Run Code Online (Sandbox Code Playgroud) 我有三个JPA实体类A
,B
并C
具有以下层次结构:
A
|
+---+---+
| |
C B
Run Code Online (Sandbox Code Playgroud)
那是:
@Entity
@Inheritance
public abstract class A { /* ... */ }
@Entity
public class B extends A { /* ... */ }
@Entity
public class C extends A { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
使用Spring Data JPA,为这些实体编写存储库类的最佳方法是什么?
我知道我可以写这些:
public interface ARespository extends CrudRepository<A, Long> { }
public interface BRespository extends CrudRepository<B, Long> { }
public interface CRespository extends CrudRepository<C, Long> …
Run Code Online (Sandbox Code Playgroud) 我如何检查是否变量定义在Thymeleaf?
在Javascript中有类似的东西:
if (typeof variable !== 'undefined') { }
Run Code Online (Sandbox Code Playgroud)
或者这在PHP中:
if (isset($var)) { }
Run Code Online (Sandbox Code Playgroud)
在Thymeleaf中有相同的东西吗?
在Spring Boot的文档中,关于提供静态内容,它说:
默认情况下,Spring Boot将从类路径中名为/ static(或/ public或/ resources或/ META-INF/resources)的目录中提供静态内容.
我发现目录中的所有内容:
src/main/resources
Run Code Online (Sandbox Code Playgroud)
将被复制到类路径中,因此我可以将我的静态内容放入:
src/main/resources/static
Run Code Online (Sandbox Code Playgroud)
一切都会好起来,我很高兴,因为我可以在src
目录下有我的静态内容.
但是,我对此有一些疑问:
src/main/resources/static
而不是说类路径(我觉得这有点令人困惑)?src/main/resources/
将始终复制到类路径中,这样做是否合适?src/main/resources/
)?我在
http://example.com/some/page?p1=11
Run Code Online (Sandbox Code Playgroud)
我想在当前网址中添加一个参数,而不必重新定义它:
http://example.com/some/page?p1=11&p2=32
Run Code Online (Sandbox Code Playgroud)
有类似的东西:
<a th:href="@{?(p2=32)}">Click here</a>
Run Code Online (Sandbox Code Playgroud)
但上面的代码返回http://example.com/some/page?&p2=32
(删除p1
参数).
我怎么能用Thymeleaf做到这一点?
有没有办法instanceof
在Thymeleaf中使用Java 运算符?
就像是:
<span th:if="${animal} instanceof my.project.Cat" th:text="A cat"></span>
<span th:if="${animal} instanceof my.project.Dog" th:text="A dog"></span>
Run Code Online (Sandbox Code Playgroud) 我有一些我在各种Jest测试中使用的utils函数,例如像这样的函数,用于模拟一个fetch响应:
export const mockFetchJsonResponse = (data) => {
ok: () => true,
json: () => data
};
Run Code Online (Sandbox Code Playgroud)
我希望以我可以导入它们并在我的测试中重用的方式共享这些功能.例如:
// Some .spec.jsx file
...
import {mockFetchJsonResponse} from some/path/to/shared/tests/utils.jsx
// Then I can use mockFetchJsonResponse inside this test
// ...
Run Code Online (Sandbox Code Playgroud)
我应该在哪里放置这样的常用工具功能?
我的项目文件夹如下所示:
components/
CompOne/
__tests__
index.jsx
CompTwo/
__tests__
...
utils/
__tests__
http.js
user.js
...
Run Code Online (Sandbox Code Playgroud)
我应该将它们utils
与我用于项目的其他utils函数一起放在文件夹中吗?那么我应该为这些功能编写单元测试吗?
如果我的Spring Boot应用程序在几个小时内处于非活动状态(例如在夜间),我会收到此错误:
2015-05-19 09:16:32.666 WARN 20582 --- [http-nio-8080-exec-6] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 0, SQLState: 08S01
2015-05-19 09:16:32.668 ERROR 20582 --- [http-nio-8080-exec-6] o.h.engine.jdbc.spi.SqlExceptionHelper : Communications link failure
The last packet successfully received from the server was 29.792.613 milliseconds ago. The last packet sent successfully to the server was 6 milliseconds ago.
Run Code Online (Sandbox Code Playgroud)
试图解决这个问题我读到MySQL有一个名为wait_timeout
setted 的参数,默认为8小时(28800秒),在此之后我的所有非活动连接都关闭了,所以我的Spring Boot应用程序停止工作......
我的问题是:
编辑
这里还有其他类似/有用的问题:
java ×6
spring-boot ×6
spring ×5
spring-mvc ×3
thymeleaf ×3
javascript ×2
angular ×1
blade ×1
classpath ×1
hibernate ×1
jdbc ×1
jestjs ×1
jpa ×1
laravel ×1
lumen ×1
mysql ×1
observable ×1
php ×1
reactjs ×1
rxjs ×1
spring-data ×1
spring-el ×1