我正在使用简单的转换器将字符串转换为枚举。这是自定义转换器:
@Component
public class SessionStateConverter implements Converter<String, UserSessionState> {
@Override
public UserSessionState convert(String source) {
try {
return UserSessionState.valueOf(source.toUpperCase());
} catch (Exception e) {
LOG.debug(String.format("Invalid UserSessionState value was provided: %s", source), e);
return null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
目前我PathVariable在我的休息控制器中使用 UserSessionState 。实现按预期工作。但是,当我尝试对其余控制器进行单元测试时,似乎转换不起作用并且它没有命中控制器方法。
@RunWith(MockitoJUnitRunner.class)
public class MyTest {
private MockMvc mockMvc;
@Mock
private FormattingConversionService conversionService;
@InjectMocks
private MynController controller;
@Before
public void setup() {
conversionService.addConverter(new SessionStateConverter());
mockMvc = MockMvcBuilders.standaloneSetup(controller).setConversionService(conversionService).build();
}
@Test
public void testSetLoginUserState() throws Exception {
mockMvc.perform(post("/api/user/login"));
}
Run Code Online (Sandbox Code Playgroud)
}
在调试模式下,我收到以下错误: …
我想知道页面加载后在角度模板中生成随机 id 的方法。我面临的问题是,每一秒我都会在两个跨度中获得不同的 ID。我希望它在两个地方都相同,并且不希望它每秒都改变其值。这是我的简单模板:
<main class="has-header has-padding">
<div id = "command">-ID:<span>{{vm.getRandomId()}}</span> -connect -run</div>
<hr>
<div id = "command">-ID:{{vm.getRandomId()}}</div>
Run Code Online (Sandbox Code Playgroud)
我的控制器:
'use strict';
(function() {
angular
.module('myApp')
.controller('myController.ctrl', myController);
myController.$inject = ['$scope'];
function screenSharingCtrl($scope) {
angular.extend(this, {
getRandomId:getRandomId
});
function getRandomId() {
return Math.floor((Math.random()*6)+1);
}
}
})();
Run Code Online (Sandbox Code Playgroud)
抱歉,如果这是一个重复的问题。任何帮助表示赞赏!谢谢你!
谁能告诉我eclipse中方法描述中绿色圆圈旁边的"d"符号是什么意思?
我相信这是"弃用"之类的东西,因为我使用的是java 1.8,我注意到在java 1.7中无法编译相同的代码.据我所知,已弃用的方法由声明+一条线表示.
附上截图以获取更多详细信息.对不起,如果问题重复.谢谢!
我有一个动作应该使用id从表中选择一行:
@RequestMapping("/test/{userId}")
@ResponseBody
public void testUserSettings(@DestinationVariable Integer userId){
System.out.println("test");
Session session = sessionFactory.openSession();
Query query = session.createQuery("select us.settings from UserSettings us"
+ " where us.userId = :userId");
Transaction transaction = null;
try {
transaction = session.beginTransaction();
query.setParameter("userId", userId);
query.executeUpdate();
transaction.commit();
} catch (HibernateException e) {
if (transaction != null)
transaction.rollback();
e.printStackTrace();
} finally {
session.close();
}
}
Run Code Online (Sandbox Code Playgroud)
它调用该方法,因为打印了"test".问题出在声明中.出于某种原因,我在控制台中获得以下输出:
org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for select queries [select us.settings from com.musala.ving.entities.UserSettings us where us.userId = :userId]
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.errorIfSelect(QueryTranslatorImpl.java:324)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.executeUpdate(QueryTranslatorImpl.java:444)
at org.hibernate.engine.query.spi.HQLQueryPlan.performExecuteUpdate(HQLQueryPlan.java:379)
at …Run Code Online (Sandbox Code Playgroud) 我知道有很多关于这个主题的文章,但我想知道在哪里添加JAVA_HOME和MAVEN路径变量.
我有3个文件:
~/.bashrc
~/.bash_profile
/etc/profile
Run Code Online (Sandbox Code Playgroud)
我应该使用哪一个来添加JAVA_HOME并将maven导出到PATH?
export JAVA_HOME="/path/to/jdk"
export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud) java ×4
spring ×2
angularjs ×1
eclipse ×1
hibernate ×1
hql ×1
javascript ×1
linux ×1
maven ×1
spring-boot ×1
spring-mvc ×1