问题列表 - 第48648页

DisplayName属性比Display属性有什么优势?

结果[DisplayName("foo")][Display(Name="foo")]@Html.LabelFor(x => x.MyProperty)相同.两者都生成<label for="MyProperty">foo</label>.DisplayName的优点是什么?

asp.net-mvc displayattribute

10
推荐指数
1
解决办法
2126
查看次数

JAX-RS/Jersey中的HTTP内容协商冲突?

我很享受JAX-RS(特别是Jersey)的自动HTTP内容协商,即它能够通过"Accept"和/或"Content-Type"标头来路由我的资源.但是我发现有时它会在发生冲突时给我足够的控制权.

例如,请考虑以下端点:

@Path("/order")
public class OrderController {

    @GET
    @Path("{orderID: \\d+}")
    @Produces("text/html")
    public View getOrderView(@PathParam("orderID") long id) {
        Order order = this.getOrderData(id);
        return new OrderView(order);
    }

    @GET
    @Path("{orderID: \\d+}")
    @Produces({"application/json", "application/xml"})
    public Order getOrderData(@PathParam("orderID") long id) {
        return new OrderService.findOrder(id);
    }
}
Run Code Online (Sandbox Code Playgroud)

我会在Firefox和Chrome之间得到不同的结果.Firefox将映射到HTML端点,而当我将每个端点URL导航到端点URL时,Chrome将触发XML端点.它们之间的区别在于它们的Accept标头中列出的MIME类型的顺序.Chrome发送以下内容:

User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.107 Safari/534.13
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Run Code Online (Sandbox Code Playgroud)

与Firefox相比,它首先列出了HTML:

User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Run Code Online (Sandbox Code Playgroud)

似乎逻辑上,当所有加权相同时,它将匹配第一个条目.但在我的情况下,我得到的结果与我想要的不同,所以确定更好的打破方法会更好.

我的问题:如果没有将标题信息注入这些方法并自己执行媒体类型处理,有没有办法"调整权重",以便在出现平局时说话?例如,我可以告诉它总是用HTML来胜过XML吗?我的RESTful客户端非常清楚他们想要什么类型,但浏览器众所周知地使用Accept标头.(就我个人而言,我认为他们应该将HTML重量略高于XML,因为这是用户所期望的,但这有点晚了.)

或者,我可以在某个集中位置执行自己的自定义内容协商吗?我并不反对手动编写这个逻辑,但如果它意味着将它应用于我的每个资源实例都不会.JAX-RS是否有一些向管道添加过滤器的概念,以便在路由之前调整请求?

rest jax-rs jersey content-negotiation http-headers

6
推荐指数
2
解决办法
6847
查看次数

将Solr的TermsComponent中的条款限制为源自某些文档的条款

我正在使用Solrs TermsComponent来实现自动完成功能.我的文档包含我在"标签"字段中编入索引的标签.现在,我可以使用TermsComponent找出所有存储文档中使用的标记.到目前为止,这非常有效.

但是还有一些额外的要求:每个文档都有一个所有者字段,其中包含拥有它的用户的ID.自动填充列表应仅包含文档中的标记,请求自动填充的用户实际拥有该标记.

我试图设置查询参数,但这似乎被TermsComponent忽略:

public static List<String> findUniqueTags(String beginningWith, User owner) throws IOException {
    SolrParams q = new SolrQuery().setQueryType("/terms")
            .setQuery("owner:" + owner.id.toString())
            .set(TermsParams.TERMS, true).set(TermsParams.TERMS_FIELD, "tags")
            .set(TermsParams.TERMS_LOWER, beginningWith)
            .set(TermsParams.TERMS_LOWER_INCLUSIVE, false)
            .set(TermsParams.TERMS_PREFIX_STR, beginningWith);
    QueryResponse queryResponse;
    try {
        queryResponse = getSolrServer().query(q);
    } catch (SolrServerException e) {
        Logger.error(e, "Error when querying server.");
        throw new IOException(e);
    }

    NamedList tags = (NamedList) ((NamedList)queryResponse.getResponse().get("terms")).get("tags");

    List<String> result = new ArrayList<String>();
    for (Iterator iterator = tags.iterator(); iterator.hasNext();) {
        Map.Entry tag = (Map.Entry) iterator.next();
        result.add(tag.getKey().toString());
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)

那么有没有办法限制由TermsComponent返回的标签,还是我手动查询用户的所有标签并自己过滤?

solr autocomplete solrj

7
推荐指数
1
解决办法
2915
查看次数

stream to strings:将多个文件合并为一个字符串

我有两个文本文件,我想作为流抓取并转换为字符串.最终,我希望合并两个单独的文件.

到目前为止,我已经有了

     //get the input stream of the files. 

    InputStream is =
            cts.getClass().getResourceAsStream("/files/myfile.txt");


     // convert the stream to string

    System.out.println(cts.convertStreamToString(is));
Run Code Online (Sandbox Code Playgroud)

getResourceAsStream不会将多个字符串作为参数.那么我需要做什么?单独转换它们并合并在一起?

任何人都可以告诉我一个简单的方法吗?

java file-io

3
推荐指数
1
解决办法
1887
查看次数

colClasses日期和时间read.csv

我有一些形式的数据:

date,time,val1,val2
20090503,0:05:12,107.25,1
20090503,0:05:17,108.25,20
20090503,0:07:45,110.25,5
20090503,0:07:56,106.25,5
Run Code Online (Sandbox Code Playgroud)

来自csv文件.我对R比较新,所以我试过了

data <-read.csv("sample.csv", header = TRUE, sep = ",")
Run Code Online (Sandbox Code Playgroud)

和使用POSIXlt,以及POSIXctcolClasses论证中,但我似乎无法从我的日期和时间数据创建一个列或"变量".我想这样做,所以我可以选择任意时间帧来计算运行统计数据,如max,min,mean(然后是boxplots等).

我还以为我可以将它转换为时间序列并以这种方式绕过它,

dataTS <-ts(data) 
Run Code Online (Sandbox Code Playgroud)

但是我已经能够将开始,结束和频率用于我的优势.谢谢你的帮助.

r read.csv

3
推荐指数
1
解决办法
5674
查看次数

泛型子C#的通用父级

我有一个父类Container可能包含任何类型的Node,其中Node是父类特有的泛型类的子类,如下所示:

public class ContainerBase<NodeType, ObjectType>
    where NodeType : NodeBase<ObjectType> where ObjectType : ObjectBase {
}

public abstract class NodeBase<T> where T : ObjectBase {
    ContainerBase<NodeBase<T>, T> container;
    public NodeBase(ContainerBase<NodeBase<T>, T> owner) {
        container = owner;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是创建具体的子类,以简化实现标准对象类型:

public class ContainerNormal : ContainerBase<NodeNormal, ObjectNormal> {
}

public class NodeNormal : NodeBase<ObjectNormal> {
    //This doesn't work
    public NodeNormal(ContainerNormal owner) : base(owner) { }
}
Run Code Online (Sandbox Code Playgroud)

我有点理解为什么对基础构造函数的调用不起作用.它试图将a转换为无效的ContainerNormala ContainerBase<NodeBase<ObjectNormal>, ObjectNormal>.

那么我错过了哪些设计模式才能使这项工作正常进行?或者我只需要在ContainerBase<NodeBase<ObjectNormal>,ObjectNormal>构造函数中接受一个,即使它可能不一定是一个ContainerNormal对象?

c# generics design-patterns

6
推荐指数
1
解决办法
1457
查看次数

PIL:放大图像

我无法让PIL放大图像.大图像缩小得很好,但小图像不会变大.

# get the ratio of the change in height of this image using the
# by dividing the height of the first image
s = h / float(image.size[1])
# calculate the change in dimension of the new image
new_size = tuple([int(x*s) for x in image.size])
# if this image height is larger than the image we are sizing to
if image.size[1] > h: 
    # make a thumbnail of the image using the new image size
    image.thumbnail(new_size)
    by = "thumbnailed" …
Run Code Online (Sandbox Code Playgroud)

python resize transform python-imaging-library

7
推荐指数
1
解决办法
2万
查看次数

同步java中的形式参数

假设我有一个方法,可以通过两个或多个线程访问,我想让它保证线程安全.

public int getVal(int x, int y, MyClass myObj)  
{
   int z;

   z = getInt(myObj);

   return x + y + z;  
}
Run Code Online (Sandbox Code Playgroud)

在这里,我认为我们不必同步x + y,因为它们是原始的.

让我们假设getInt(myObj)修改myObj的状态并影响z的值.

因此,我将不得不为该行提供同步,z = getInt(myObj);但仅当两个线程都在'myObj'引用中传递相同的实例时.作为API的编码器,我不知道两个线程是否都会为'myObj'传递相同的实例.在某些情况下,这些线程可能会在"myObj"引用中传递相同的MyClass实例,而在其他情况下,它们可能会在"myObj"引用中传递不同的MyClass实例.

那么,如何确保线路的线程安全z = getInt(myObj)?(当然,我们不希望在传递的实例不同时进行同步,并且只有在传递的实例相同时才需要同步.我很清楚这是无法确定的).

假设MyClass不能成为不可变的,我认为以下可能是一个解决方案.

synchronized(myObj)
{
  z = getInt(myObj);
}
Run Code Online (Sandbox Code Playgroud)

这是正确的解决方案吗?并且,我们可以通过其他方式确保线程安全

z = getInt(myObj); (but only in case of different instances)?
Run Code Online (Sandbox Code Playgroud)

java multithreading

5
推荐指数
1
解决办法
2631
查看次数

Fortran中的数组声明符,没有下限和上限0

根据Fortran标准信息,我可以找到(F77,F90/95)一个数组声明符,其中没有下限假定该下限为1.由于上限需要大于或等于下限,会不允许以下声明:

INTEGER A(0)
Run Code Online (Sandbox Code Playgroud)

但是,我不能让ifort和gfortran以任何方式抱怨这个说法.编译器是否需要将此标记为错误?

fortran

2
推荐指数
1
解决办法
1508
查看次数

将CoreData添加到现有项目

我正在尝试将CoreData添加到现有项目中,并且存在奇怪的错误......

我收到错误:

由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因是:'无法使用nil模型创建NSPersistentStoreCoordinator'

在RootView中有一个警告:

- (NSFetchedResultsController *)fetchedResultsController;
Run Code Online (Sandbox Code Playgroud)

排队:

_fetchedResultsController.delegate = self;
Run Code Online (Sandbox Code Playgroud)

它说:

警告:类'RootViewController'没有实现'NSFetchedResultsControllerDelegate'协议

有任何想法吗?

core-data objective-c

5
推荐指数
1
解决办法
4131
查看次数