我正在使用Spring Framework4.3.x和JUnit4,我有以下结构
@Transactional
@WebAppConfiguration
@RunWith(Parameterized.class)
@ContextConfiguration(classes={RootApplicationContext.class, ServletApplicationContext.class})
@TestExecutionListeners(listeners={LoggingTestExecutionListener.class}, mergeMode=MergeMode.MERGE_WITH_DEFAULTS)
public class CompleteTest {
@ClassRule
public static final SpringClassRule SPRING_CLASS_RULE = new SpringClassRule();
@Rule
public final SpringMethodRule springMethodRule = new SpringMethodRule();
Run Code Online (Sandbox Code Playgroud)
因此组合:
@RunWith(Parameterized.class)+ SpringClassRule+SpringMethodRule工作如何预期.
我TestRule通过ExternalResource以下方式创建了一个自定义:
@Component
public class CompleteRule extends ExternalResource {
private static final Logger logger = LoggerFactory.getLogger(CompleteRule.class.getSimpleName());
private final WebApplicationContext webApplicationContext;
private final Environment environment;
private MockMvc mockMvc;
public CompleteRule(WebApplicationContext webApplicationContext, Environment environment) {
this.webApplicationContext = webApplicationContext; …Run Code Online (Sandbox Code Playgroud) 我有一个运行正常的fancybox 照片库,但我正在尝试为照片添加标题,但根本无法显示它们。
HTML
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.1.20/jquery.fancybox.min.css" />
<a data-fancybox="gallery" class="party" title="I met Anna in 2007 while in college at NAU in Flagstaff, AZ." href="images/anna.jpeg">
<img class="smig" src="images/anna.jpeg">
</a>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.1.20/jquery.fancybox.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
JS
$(document).ready(function() {
$("a.party").fancybox({
helpers : {
title: {
type: 'inside'
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
请帮忙!
使用Spring Boot,我使用单个资源构建了一个玩具REST服务,如下所示:
@RestController
@RequestMapping("/checkout")
public class CheckoutRestController {
@PostMapping("/book")
public boolean buyBook(@RequestParam CreditCard creditCard, @RequestParam ShippingAddress shippingAddress) {
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
这两个CreditCard和ShippingAddress是POJO(简单Java对象),我已经编写了)。
我尝试使用此有效负载发布到此端点:
{
"creditCard" : {
"nameOnCard":"foo",
"number":12345678,
"expiryMonth":12,
"expiryYear":2018,
"ccv":100
},
"shippingAddress" : {
"steert":"foor",
"houseNumber":"1a",
"city":"bar",
"state":"bazz",
"country":"buzz",
"zipCode":"booz"
},
}
Run Code Online (Sandbox Code Playgroud)
但是我得到一个错误:
{
"timestamp": "2018-03-13T11:36:52.745+0000",
"status": 400,
"error": "Bad Request",
"message": "Required CreditCard parameter 'creditCard' is not present",
"path": "/checkout/book"
}
Run Code Online (Sandbox Code Playgroud)
我知道一种解决方法是将两个POJO都包装在请求包装器中,但除非确实需要,否则我不愿这样做。
是否可以发布两个@RequestParam带注释的对象?如果是这样,JSON会是什么样?
我想使用模态窗口中的ajax请求提交表单。
通过单击以下链接打开模态:
<a class="btn btn-primary" data-target="#modal-review" data-toggle="modal">
<i class="fa fa-edit"></i> Write a review
</a>
Run Code Online (Sandbox Code Playgroud)
模态窗口:
<div class="modal fade" id="modal-review" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"> ×</button>
<h3 class="modal-title-site text-center">PRODUCT REVIEW </h3>
</div>
<div class="modal-body">
<h3 class="reviewtitle uppercase">Product: {{ $product->Name }}</h3>
<form id="review-form" method="post" action="{{ route('add-review') }}">
{{ csrf_field() }}
<div class="form-group">
<label for="review-name">Name</label>
<input type="text" class="form-control" id="review-name" required>
</div>
<div class="form-group">
<label for="review-email">Email</label>
<input type="text" class="form-control" id="review-email" required>
</div>
<div class="form-group ">
<label …Run Code Online (Sandbox Code Playgroud) java ×2
javascript ×2
jquery ×2
spring ×2
ajax ×1
fancybox ×1
html ×1
junit ×1
junit5 ×1
rest ×1
spring-boot ×1
spring-test ×1