小编Joh*_*pit的帖子

CSS:100%宽度或高度,同时保持纵横比?

目前,使用STYLE,我可以使用width: 100%auto高度(反之亦然),但我仍然不能将图像限制在特定的位置,分别是太宽或太高.

有任何想法吗?

css height image width

162
推荐指数
7
解决办法
42万
查看次数

Laravel请求使用查询字符串获取当前路径

是否有Laravel方法来获取具有查询参数的Request的当前路径?

例如,对于URL:

http://www.example.com/one/two?key=value
Run Code Online (Sandbox Code Playgroud)

Request::getPathInfo()会回来的/one/two.

Request::url()会回来的http://www.example.com/one/two.

期望的输出是/one/two?key=value.

php laravel laravel-5 laravel-request

47
推荐指数
5
解决办法
7万
查看次数

用于NonNull Lombok构建器属性的FindBugs检测器

我有很多@NonNull使用Lombok构建器的字段.

@Builder
class SomeObject {
    @NonNull String mandatoryField1;
    @NonNull String mandatoryField2;
    Integer optionalField;
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是,这为调用者提供了在不设置a的情况下创建对象的选项mandatoryField,在使用时会导致运行时失败.

SomeObject.builder()
          .mandatoryField1("...")
          // Not setting mandatoryField2
          .build();
Run Code Online (Sandbox Code Playgroud)

我正在寻找在构建时捕获这些错误的方法.

有一些非Lombok方式,如StepBuilders,甚至是构造函数,以确保始终设置必填字段,但我对使用Lombok构建器实现此目的的方式感兴趣.

另外,我理解@AllArgsConstructor为了进行编译时检查而设计类(比如一个步骤构建器或者一个)会产生很多笨拙的代码 - 这就是为什么我有动力构建一个后编译的FindBugs步骤来检测这些.

现在,当我明确地将@NonNull字段设置为时,FindBugs确实失败了null:

FindBugs检测到此失败,

new SomeObject().setMandatoryField1(null);
Run Code Online (Sandbox Code Playgroud)

但它没有检测到这个:

SomeObject.builder()
          .mandatoryField1(null)
          .build();
Run Code Online (Sandbox Code Playgroud)

它也没有发现这个:

SomeObject.builder()
          .mandatoryField1("...")
          //.mandatoryField2("...") Not setting it at all.
          .build();
Run Code Online (Sandbox Code Playgroud)

这似乎正在发生,因为Delomboked构建器看起来像,

public static class SomeObjectBuilder {
    private String mandatoryField1;
    private String mandatoryField2;
    private Integer optionalField;

    SomeObjectBuilder() {}

    public SomeObjectBuilder mandatoryField1(final String mandatoryField1) {
        this.mandatoryField1 …
Run Code Online (Sandbox Code Playgroud)

java findbugs builder lombok null-check

13
推荐指数
2
解决办法
693
查看次数

不同浏览器中模糊事件的不同行为

考虑这个例子,我有2个输入字段:

<input id="a" />
<input id="b" style="display: none" />
Run Code Online (Sandbox Code Playgroud)

并考虑以下JavaScript,这是尝试这样做:

显示#b只有当#a具有焦点,并隐藏#b每当#a失去焦点,除非#a其重点丧失#b.

$("#a").focus(function() {
    $("#b").show();
});

$("#a, #b").blur(function() {
    $("#b").hide();
});

$("#b").focus(function(){
    $("#b").show();
});
Run Code Online (Sandbox Code Playgroud)

$("#a").focus(function() {
  $("#b").show();
});

$("#a, #b").blur(function() {
  $("#b").hide();
});

$("#b").focus(function() {
  $("#b").show();
});
Run Code Online (Sandbox Code Playgroud)
#b {
  display: none;
}
Run Code Online (Sandbox Code Playgroud)
<input id="a" value=a>
<input id="b" value=b>
<br/>^ focus on the input
Run Code Online (Sandbox Code Playgroud)

上面的代码是不正确的,因为$("#b").focus()永远不会被触发,因为一旦#a失去焦点,#b就会被隐藏.在Firefox(版本24.6.0)中观察到此预期行为.

但在Chrome(版本35.0)中,代码似乎运行不正确(或正确!?).

很明显,该b.focus 活动仍在Chrome中注册.为什么此事件在Chrome中注册,而在Firefox中注册?


更新 …

javascript focus cross-browser blur dom-events

11
推荐指数
1
解决办法
5768
查看次数

调用ResultSet.getDate()时出现NullPointerException

我正在使用以下代码java.lang.NullPointerException进行调用ResultSet.getDate().但是,数据库中的条目似乎不是null.连接似乎是活动的,因为正在获取其他字段.我究竟做错了什么?

try {
    ... /* Code that creates a connection and initializes statement */

    String query = "SELECT * FROM groups WHERE id = 'testGroup1'";
    ResultSet rs = statement.executeQuery(query);
    if(rs.next()) {
        admin = rs.getString("admin_id");
        User.process(admin);
        java.sql.Date created_on = rs.getDate("created_on");
        System.out.println("Created on = " + created_on.toString());
    }
}
catch(Exception e) {
    System.out.println("Stuck here");
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

这是输出和堆栈跟踪:

Admin id = 42          // User.process prints the admin id
Stuck here
java.lang.NullPointerException
    at com.mysql.jdbc.ResultSet.findColumn(ResultSet.java:966)
    at com.mysql.jdbc.ResultSet.getDate(ResultSet.java:1988)
    at com.myapp.server.model.Group.initInfo(Group.java:39) …
Run Code Online (Sandbox Code Playgroud)

java jdbc

9
推荐指数
1
解决办法
5316
查看次数

在Laravel中获取服务器响应时间的正确方法

我创建了一个可终止的中间件,可以向Google Analytics发送请求.我发送的一个属性是服务器响应时间.我是这样做的:

\App\Http\Kernel我添加SendAnalytics中间件:

class Kernel extends HttpKernel {
    ...
    protected $middleware = [
        'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode',
        ...
        'App\Http\Middleware\SendAnalytics',
    ];
}
Run Code Online (Sandbox Code Playgroud)

SendAnalytics中间件是这样的:

class SendAnalytics implements TerminableMiddleware {

    protected $startTime;

    public function __construct() {
        $this->startTime = microtime(true);
    }

    public function handle($request, Closure $next) {
        return $next($request);
    }

    public function terminate($request, $response) {
        $responseTime = microtime(true) - $this->startTime;
        /* I send a request to Google here, using their Measurement Protocol */
        // Dying for debugging purposes
        dd($responseTime); …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-5

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

为什么使用restricted_pa​​ckage_name?

根据文件,restricted_package_name意味着:

此参数指定包含应用程序包名称的字符串.设置后,仅将消息发送到与包名称匹配的注册ID.可选的.

但是,无论我们指定字段,注册ID都不匹配吗?什么是用例restricted_package_name

android google-cloud-messaging

4
推荐指数
1
解决办法
1938
查看次数

根据客户端发送HTML或JSON响应

我有一个包含Eloquent实体及其各自的RESTful资源控制器的Laravel应用程序,如下所示:

该模型

class Entity extends Eloquent {
    ...
}
Run Code Online (Sandbox Code Playgroud)

控制器

class EntityContoller {

    public function index() {
        Entity $entities = Entity::all();
        return view('entity.index', compact($entities));
    }

    ... // And many more routes like that
}
Run Code Online (Sandbox Code Playgroud)

现在,我正在构建一个android应用程序,而不是返回视图,我需要将数据作为JSON。

在当前解决方案中,对于我从Android应用程序发出的每个请求,我都会添加get query参数contentType=JSON。我在控制器中检测到该错误,并相应地发送数据,如下所示。但这似乎很乏味,我必须在所有地方都写相同的条件。

class EntityContoller {

    public function index() {
        Entity $entities = Entity::all();

        if(Request::get('contentType', 'JSON')) return $entities;
        return view('entity.index', compact($entities));
    }

    ... // And many more routes like that
}
Run Code Online (Sandbox Code Playgroud)

我不必在每个控制器动作中都写此条件的最佳方式是什么?

php rest laravel laravel-5

4
推荐指数
1
解决办法
1180
查看次数

将打印介质的引导网格从col-xs更改为col-sm

我有一个网页,在打印时需要遵循col-sm-*网格而不是col-xs-*网格。有没有简单的方法可以做到这一点?可以更改打印预览页面的宽度,以使其适合col-sm-*规则的所有样式吗?

这是一个例子:

window.print();
Run Code Online (Sandbox Code Playgroud)
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />

<div class="row">
  <div class="col-sm-6 col-xs-12">
    <h1>Left column</h1>
  </div>

  <div class="col-sm-6 col-xs-12">
    <h1>Right column</h1>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这是实际打印的内容:

实际打印的页面

这是我希望它打印的内容:

预期的打印预览

css less media-queries twitter-bootstrap

4
推荐指数
1
解决办法
2326
查看次数

Mockito.any() 匹配泛型类型 T 的任何实例

我试图模拟一个 void 方法来每次都抛出异常。该方法将 aList<SomeClass>作为参数。我如何将其传递给Mockito.any()

Mockito.doThrow(new Exception())
       .when(myClassInstanceSpy)
       .myVoidMethod(Mockito.any(List<SomeClass>.class)); // This fails!
Run Code Online (Sandbox Code Playgroud)

这是我的类定义:

class MyClass {
    ... 
    public void myVoidMethod(List<SomeClass> scList) {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

java generics mockito

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