是否有REST最佳实践来获取不同语言的资源.目前,我们有
www.mysite.com/books?locale=en
Run Code Online (Sandbox Code Playgroud)
我知道我们可以使用accept-language标题,但对我们来说更好
www.mysite.com/books/en or www.mysite.com/books.en
Run Code Online (Sandbox Code Playgroud)
或者没关系?
我创建了一个扩展第 3 方抽象类的新类。新类调用抽象类中的方法。我遇到的问题是在尝试编写单元测试时,我不确定如何编写测试,因为我不知道 3rd 方课程所需的确切细节。
下面的 AbstractDecoratorMapper 是一个 SiteMesh 特定的类,我必须扩展它才能使 SiteMesh 正常工作。据我从文档中可以看出,我不能使用组合。
public final class PartnerDecoratorMapper extends AbstractDecoratorMapper {
@Override
public void init(Config config, Properties properties, DecoratorMapper parent) throws InstantiationException {
super.init(config, properties, parent);
}
@Override
public Decorator getDecorator(HttpServletRequest request, Page page) {
if (super.getDecorator(request, page).getName().equalsIgnoreCase("default")) {
return getNamedDecorator(request, "externalPartnerDefault");
}
return super.getDecorator(request, page);
}
}
Run Code Online (Sandbox Code Playgroud)
如果此工具可以提供任何帮助,我会使用 JMock。
我通过此页面http://www.efinancialcareers.co.uk/search自动化了一些用户流程.当我使用左侧精炼轨道缩小搜索范围时,会出现一个覆盖图,用户必须等到返回搜索结果.该方法等待叠加层出现,然后等待它消失.
public void waitForSRPOverlayToComplete() {
Wait<WebDriver> wait = new FluentWait<WebDriver>(getDriver())
.withTimeout(5, TimeUnit.SECONDS)
.pollingEvery(1, TimeUnit.NANOSECONDS)
.ignoring(NoSuchElementException.class)
.ignoring(TimeoutException.class);
**// Error occurs here**
WebElement blockedOverlay = wait.until(new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(By.className("blockOverlay"));
}
});
Wait<WebDriver> wait2 = new FluentWait<WebDriver>(getDriver())
.withTimeout(5, TimeUnit.SECONDS)
.pollingEvery(1, TimeUnit.NANOSECONDS)
.ignoring(NoSuchElementException.class)
.ignoring(TimeoutException.class);
wait2.until(ExpectedConditions.stalenessOf(blockedOverlay));
}
Run Code Online (Sandbox Code Playgroud)
有时我得到一个Timeout异常,因为找不到元素(blockOverlay).当发生这种情况并且叠加确实出现时我观察了页面,但我认为有时当搜索速度非常快时,上面的方法会错过它.我不明白为什么我得到技术错误,因为我告诉流利的等待忽略它们.
这是使叠加显示的代码:
$('body').block({
message: $('#loaderEl'),
css: {
backgroundColor: 'transparent',
border: "none",
color: '#333333',
fontWeight: 'bolder',
top: ($(window).height() - $('#loaderEl').height()) / 2 + $(window).scrollTop() + "px"
},
overlayCSS: { …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Java Filter更改Locale,但以下代码不起作用,因为JSP页面仍以英语呈现:
public class PreferenceFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
Locale locale = StringUtils.parseLocaleString("fr");
res.setLocale(locale);
chain.doFilter(req, res);
}
}
Run Code Online (Sandbox Code Playgroud)
我也在使用Spring MVC,我们正在使用自己的翻译系统来获取不同语言环境的翻译:
<bean id="messageSource"
class="com.mycompany.web.translations.DatabaseDrivenMessageSourceImpl" scope="singleton">
<property name="cacheSeconds" value="3"/>
<property name="defaultEncoding" value="UTF-8"/>
</bean>
Run Code Online (Sandbox Code Playgroud)