我创建了一个视图并且它运行良好但我现在需要在页面中包含另一个JSP.
考虑到我的视图安装在WEB-INF/Views的受保护区域(因此它在我的资源目录中不可用,我的imgs,css是)
我试过用
<%@ include file="/views/shared/items/NewItem.jsp" %>
Run Code Online (Sandbox Code Playgroud)
它总是给我FileNotFound,考虑到我的NewItem.jsp与我的其他视图一起安装(即不能通过正常路由访问但由控制器控制)如何包含安装在我视图旁边的JSP文件
如果我取出"包含文件",我的视图呈现没有问题.
我相信我错过了什么?
提前致谢
任何人都可以提供帮助,直到现在我一直在成功地使用Robolectric :-)
我有一个获得位置经理的活动.现在根据文档,robolectric框架包含一个名为"ShadowLocationManager"的影子类来制作一种模拟.
我的问题是,我怎么能控制这个模拟,我可以控制将返回什么?如果是这样的话?
或者我必须创建我的"OWN"阴影类并实现"ShadowLocationManager".
我一直在搜索文档,但我找不到任何东西来确认我的要求.
如果robolectric确实包含位置管理器的阴影,我该如何控制启用哪些提供程序?
如果已经存在并且可以进行配置和控制,我不想实现我自己的影子类.
任何帮助真的很感激
提前致谢.
我想能够在代码执行进入方法然后退出时进行记录,我想知道是否有人对实现此目的的最佳方法有任何意见?
我知道在运行时注入日志记录代码的AOP方法存在,但我希望有更多的控制,PostSharp似乎是一个付费框架.
你会在这里推荐什么级别的日志记录,我想DEBUG.
记录时间怎么样?该方法进入vs退出需要多长时间
我很想知道其他人在这里做了什么以及你正在使用什么框架.
我正在寻找与log4net.
我正在考虑记录的是参数和方法的名称以及参数的值,并且退出我正在考虑记录我返回的对象的值,如果完全返回的话.
其他人在做什么?
提前致谢
我正在尝试跟踪TDD,我遇到了一个小问题.我编写了一个Test来将新用户插入数据库.在MyService类上调用Insert new user,因此我继续创建mytest.它失败了,我开始在我的MyService类上实现我的CreateUser方法.
我遇到的问题是MyService将调用存储库(另一个类)来进行数据库插入.
所以我想我会使用一个模拟框架来模拟这个Repository类,但这是正确的方法吗?
这意味着我必须更改我的测试以实际为我的用户存储库创建一个模拟.但这是推荐的吗?我最初写了我的测试并使它失败了,现在我意识到我需要一个存储库并需要模拟它,所以我不得不改变我的测试以满足模拟对象.闻起来有点?
我想在这里得到一些反馈.
如果这是要走的路,那么什么时候才能创建实际的用户存储库?这需要自己的测试吗?
或者我应该忘记嘲笑任何东西?但是,这将被归类为集成测试而不是单元测试,因为我将MyService和User Repository一起作为一个单元进行测试.
我有点失落; 我想以正确的方式开始.
我已经成功地进行了身份验证,我知道它会向客户端返回一个令牌(JWT).此令牌具有到期日期/时间,因此我考虑将令牌保存在cookie中,以便将来的登录进行身份验证,但这可能无法正常工作.
然后,我虽然在cookie中保存用户名和密码,虽然我知道这不推荐?
目前我有一个接受用户名和密码的表单,成功登录将提供用于访问其他端点的令牌.
表单需要包含"记住我",因此可以进行自动登录.
实现这一目标的最佳方法是什么?
我应该在cookie中存储用户名和密码,如果不是,我如何在用户下次到达我的网站时自动进行身份验证.我提供的令牌即将过期,所以即使存储它也有任何意义吗?
提前致谢
我在这里看到一些示例代码延迟AngularJS路由更改,直到加载模型以防止闪烁
我马上就知道这是正确的方法,我只需要在完成加载后才能使控制器加载,通常大多数示例都会告诉您将routeprovder中的代码解析为内联函数,但这听起来不对.控制器需要它,所以为什么不让控制器实现要解决的功能.这听起来就像我在寻找的那样.这似乎使用了原型模式??
function PhoneListCtrl($scope, phones) {
$scope.phones = phones;
$scope.orderProp = 'age';
}
PhoneListCtrl.resolve = {
phones: function(Phone, $q) {
// see: https://groups.google.com/forum/?fromgroups=#!topic/angular/DGf7yyD4Oc4
var deferred = $q.defer();
Phone.query(function(successData) {
deferred.resolve(successData);
}, function(errorData) {
deferred.reject(); // you could optionally pass error data here
});
return deferred.promise;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我的控制器是这样的
'use strict';
angular.module('TestApp')
.controller('ItemsCtrl', function ($scope) {
});
Run Code Online (Sandbox Code Playgroud)
那么当我的控制器在模块内声明时,如何在控制器上应用新功能?
我真正需要的是类似的东西
TestCtrl.resolve = {
items: function( $q) {
..........
return deferred.promise;
}
}
Run Code Online (Sandbox Code Playgroud)
然后这将允许我在我的routeprovider ..
when('/items', {
templateUrl: 'views/items.html',
controller: 'TestCtrl',
resolve: …Run Code Online (Sandbox Code Playgroud) 我试图找到如何模拟MVC/Web Api控制器内可用的请求和响应对象.
这是可能的,我没有注入Request和Response对象,这些是可用的,因为控制器继承自ApiController或Controller.
有没有人有一些很好的例子来通过nsubstitute访问这些?
还有像上下文这样的其他对象呢?
例如,我对接收片段中的点击事件感到困惑,我应该将此点击事件传递到我的活动中还是在片段本身中处理此事件?
我还试图解决当我在活动中提供超过 1 个片段时的情况,例如活动的平板电脑版本。
这也提出了我的另一个问题,我在我的活动中以及我的片段中创建了一个菜单,我应该在哪里检查
onOptionsItemSelected
Run Code Online (Sandbox Code Playgroud)
在活动或片段内部?
我对应该在哪里处理点击事件和菜单感到非常困惑。
有人可以帮忙吗?
我有1个类,基本上它拥有成员,并且在该类中是一个List.
我在列表中的成员也......所以基本上它是这样的,
我有2个成员,每个成员都有多个会话.
我希望只用1个会话返回每个成员.
我做了一个LINQ查询,但当然它不起作用......
我想我需要做一个自我加入,任何想法?
基本上我的错误是m在我的子查询自连接中不存在.
var sessions =
from m in this.members
join s in
(
from se in m.Sessions
group se by se.Name into g
select new {Name = g.Key, SessioEndTime = g.Max(a=>a.SessioEndTime)}
)
on m.Name equals s.Name
select new { MemberName = m.Name, SessionTime = s.SessioEndTime}
Run Code Online (Sandbox Code Playgroud)
我很感激任何人的反馈.
提前致谢.
编辑
好吧,我设法像下面这样做,但这是最好的方法吗?
var sessions =
from m in this.members
let sn = m.Sessions.OrderByDescending(a => a.SessionEndTime).FirstOrDefault()
select new { MemberName = m.Name, SessionTime = sn.SessioEndTime}
Run Code Online (Sandbox Code Playgroud)
这种方式sn包含1条记录,但我可以访问所有属性...
但这是使用LET的最佳方式吗?
谢谢.
我创建了一些资源文件来保存字符串.我MessageBox通过直接指向一个名为的资源文件TestLocalResource和一个资源字符串来显示一个,该资源字符串ThisIsMyTest只需引用资源字符串,如下所示:
TestLocalResource.ThisIsMyTest
Run Code Online (Sandbox Code Playgroud)
现在这看起来确实有效.但这让我想知道通过这种方式引用资源字符串,我是否总是访问默认资源文件(例如TestLocalResource.resx)而不是其德语版本(例如TestLocalResource.de-DE.resx)?
相反,我必须使用ResourceManager吗?如果是这样,怎么ResourceManager知道当前的语言(文化)?我需要明确设置它吗?
这就是我认为我需要使用的方式ResourceManager:
ResourceManager resmgr =
new ResourceManager("MyApplication.MyResource", Assembly.GetExecutingAssembly());
Run Code Online (Sandbox Code Playgroud)
但我希望有一种方法可以更方便地访问本地化资源字符串.
c# ×3
.net ×2
android ×2
mocking ×2
access-token ×1
angularjs ×1
asp.net-mvc ×1
cookies ×1
jsp ×1
jwt ×1
linq ×1
linq-to-sql ×1
localization ×1
log4net ×1
logging ×1
nlog ×1
nsubstitute ×1
resources ×1
robolectric ×1
self-join ×1
spring ×1
spring-mvc ×1
tdd ×1
token ×1
unit-testing ×1