我想将Web表单转换为Java中的模型.
在C#中我可以这样写:
<input name="id" value="" type="text"/>
public class Test
{
public int? Id{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
在id可以为空.
但是在Java中使用struts2时会引发异常:
Method "setId" failed
Run Code Online (Sandbox Code Playgroud)
那么如何用Java编写这个案例呢?
我正在尝试为脚本接收的命令行参数指定行为,以确保所有验证都通过.我的一些命令行参数将导致abort或被exit调用,因为提供的参数缺失或不正确.
我正在尝试这样不起作用的东西:
# something_spec.rb
require 'something'
describe Something do
before do
Kernel.stub!(:exit)
end
it "should exit cleanly when -h is used" do
s = Something.new
Kernel.should_receive(:exit)
s.process_arguments(["-h"])
end
end
Run Code Online (Sandbox Code Playgroud)
该exit方法干净利落地阻止RSpec验证测试(我得到"SystemExit:exit").
我也尝试过,mock(Kernel)但是这也没有按照我的意愿工作(我没有看到任何明显的区别,但这可能是因为我不确定如何模拟内核并确保在我的内核中使用了模拟的内核Something类).
我正在创建一系列构建器来清理语法,为我的模拟创建域类,作为改进整体单元测试的一部分.我的构建器基本上填充了一个域类(例如a Schedule),其中一些值通过调用相应的值WithXXX并将它们链接在一起来确定.
我在构建器中遇到了一些共性,我想将它抽象到基类中以增加代码重用.不幸的是,我最终看起来像:
public abstract class BaseBuilder<T,BLDR> where BLDR : BaseBuilder<T,BLDR>
where T : new()
{
public abstract T Build();
protected int Id { get; private set; }
protected abstract BLDR This { get; }
public BLDR WithId(int id)
{
Id = id;
return This;
}
}
Run Code Online (Sandbox Code Playgroud)
特别注意protected abstract BLDR This { get; }.
域类构建器的示例实现是:
public class ScheduleIntervalBuilder :
BaseBuilder<ScheduleInterval,ScheduleIntervalBuilder>
{
private int _scheduleId;
// ...
// UG! here's the problem:
protected override ScheduleIntervalBuilder This …Run Code Online (Sandbox Code Playgroud) 我目前正在寻求执行一些无头HTML渲染,基本上在屏幕外创建资源并将结果保存为图像.目的是获取HTML语言的一个子集并将其应用于小屏幕设备(如PocketPC),因为我们的用户知道HTML并且从Photoshop到HTML标记的转换是可以接受的.
我也正在考虑使用WPF成像,所以如果有人可以权衡其使用的评论(特别是你的用户指向用于创建WPF布局的工具,你可以转换成图像以及它的表现如何),我们将不胜感激.
我的偏好顺序是:
我并不十分担心无头渲染的功能如何丰富,因为除了图像之外我们不会大量使用JavaScript,Flash和其他嵌入式对象.只要其实现接近符合标准,我就可以使用IE,Firefox,webkit甚至自定义渲染实现.
我试图弄清楚为什么一个非常简单的"这个哈希有这个关键"我正在编写的规范是失败的.进入我的Ruby REPL我正在尝试以下...
[3] pry(main)> a_hash = {:a=>"A"}
=> {:a=>"A"}
[4] pry(main)> a_hash.should have_key :a
NoMethodError: undefined method `have_key' for main:Object
from (pry):4:in `<main>'
[5] pry(main)> a_hash.keys.length.should == 1
=> true
[8] pry(main)> a_hash.has_key? :a
=> true
Run Code Online (Sandbox Code Playgroud)
第一个测试显然是我想要工作的,我正在运行的第二个测试只是为了验证我的REPL环境中是否加载了RSpec.
我正在使用.NET Fx 3.5并编写了自己的配置类,这些类继承自ConfigurationSection/ConfigurationElement.目前我在配置文件中看起来像这样的东西:
<blah.mail>
<templates>
<add name="TemplateNbr1" subject="..." body="Hi!\r\nThis is a test.\r\n.">
<from address="blah@hotmail.com" />
</add>
</templates>
</blah.mail>
Run Code Online (Sandbox Code Playgroud)
我希望能够将body表示为template(add上面示例中的节点)的子节点,最终得到如下内容:
<blah.mail>
<templates>
<add name="TemplateNbr1" subject="...">
<from address="blah@hotmail.com" />
<body><![CDATA[Hi!
This is a test.
]]></body>
</add>
</templates>
</blah.mail>
Run Code Online (Sandbox Code Playgroud) 我有一个环境,通过在夜间凌晨接收和发送数据,为3个时区的许多设备提供服务.基于标识号和使用模运算的简单计算伪随机地确定这些设备的分布.这种计算的结果造成了一个不必要的人为高峰,在夜间的某些时段消耗的资源比我想要的多.
作为我们协议的一部分,我可以指示设备何时在随后的夜晚连接到我们的系统.
我正在寻找一种算法,通常可以将峰值分配到更高级别的线(尽管通常在更多时候更高)或者至少在正确方向上推动 - 这意味着我应该花时间阅读什么类型的术语.我可以使用设备的识别号,当前时间和设备的时区作为执行计算的输入.我还可以执行一些前期分析计算来创建从中抽取插槽的池,虽然我觉得这种方法可能不如我希望的那么优雅(虽然学习算法可能不是一件坏事......).
(最终,有些不太相关,我将使用C#实现此算法.)
我的公司正在尝试使用.NET Fx 3.5和C#编写代理服务器.从我们的研究中我已经读过HttpListener不是代理服务器的好选择,尽管我不确定为什么.
我们目前正在使用Mentalis代理示例源代码,但其中包括实现我们自己的日志记录和性能计数器.使用HttpListener将包装Http.sys,它将为我们提供一些开箱即用的性能统计信息.
那么为什么HttpListener是HTTP代理工作的不良候选者呢?
(是的,我们也通过编写或配置ICAP服务器来考虑Squid 3.1.)
我正在开展一个家庭项目,涉及将图像与图像数据库进行比较(使用象限 - 左右 - 直方图方法).我想知道我对网络摄像头或其他图像捕获设备的选择:
我主要是这样问我可以避免其他人可能遇到过网络摄像头的陷阱,看看是否还有其他可用的图像捕捉设备(或C#可用的API).我怀疑任何旧的网络摄像头都可以,但我宁愿安全而不是抱歉.
如果我通过2个不同的任务或线程增加一个静态,我需要锁定它吗?
我有这个类将同时由多个线程使用,它返回一个代理在线程内使用,但我不想在每个线程同时使用相同的代理,所以我想增加一个静态整数是最好的方法,有什么建议吗?
class ProxyManager
{
//static variabl gets increased every Time GetProxy() gets called
private static int Selectionindex;
//list of proxies
public static readonly string[] proxies = {};
//returns a web proxy
public static WebProxy GetProxy()
{
Selectionindex = Selectionindex < proxies.Count()?Selectionindex++:0;
return new WebProxy(proxies[Selectionindex]) { Credentials = new NetworkCredential("xxx", "xxx") };
}
}
Run Code Online (Sandbox Code Playgroud)
根据选定的答案
if(Interlocked.Read(ref Selectionindex) < proxies.Count())
{
Interlocked.Increment(ref Selectionindex);
}
else
{
Interlocked.Exchange(ref Selectionindex, 0);
}
Selectionindex = Interlocked.Read(ref Selectionindex);
Run Code Online (Sandbox Code Playgroud)