小编Dre*_*w H的帖子

修改ruby hash到位(rails strong params)

这可能是一个红宝石问题然后rails问题,但我很确定我能够在vanilla ruby​​应用程序中执行此操作.

我有强大的params定义.

def trip_params
  params.require(:trip).permit(:name, :date)
end
Run Code Online (Sandbox Code Playgroud)

现在我在控制器方法中得到了这些参数.我想做这个.

def save
  trip_params[:name] = 'Modifying name in place'
  #trip_params[:name] still equals original value passed
end
Run Code Online (Sandbox Code Playgroud)

这永远不会奏效. 名称不会改变.BTW:trip_params的类型是ActionController :: Parameters

如果我做一个标准的ruby脚本,它可以工作.

test = {}    
test[:name] = "blah"    
test[:name] = "ok"    
puts test #{:name=>"ok"}
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails-4

45
推荐指数
3
解决办法
3万
查看次数

Scala,Long,Int等中的类型

请输入.

scala> 86400000 * 150
res0: Int = 75098112


scala> val i : Long = 86400000 * 150
i: Long = 75098112  


val i  = 86400000 * 150.asInstanceOf[Long]
i: Long = 12960000000

val i  = 86400000 * 150L
i: Long = 12960000000
Run Code Online (Sandbox Code Playgroud)

世界上到底发生了什么?我一直在跳伞,我必须说这是我见过的最危险的事情.没有编译器检查这个?显然,如果我用150代替一个不同的变量.

*编辑*

这是让我担心的实际代码.

val oneDay = 86400000
val days150 = oneDay * 150

days150 = 75098112
Run Code Online (Sandbox Code Playgroud)

除了我自己以外,这不是Scala的错,也不是任何故障.让我担心

scala

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

@ViewScoped在每个回发请求上调用@PostConstruct

这似乎不对.我正在清理我的代码,我只是注意到了这一点.每个ajax请求都会触发构造函数和@PostConstruct我的@ViewScopedbean.即使是简单的数据库分页也会触发它.

知道@ViewScoped@RequestScoped任何请求都要重建并且不应该重建.只有在通过GET重新加载完整页面之后.

jsf constructor postconstruct jsf-2 view-scope

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

使用Jackson JsonNodeFactory的最佳方式

我正在使用Jackson构建自定义JSON对象.这是正确的方法吗?

它似乎工作得很好(输出是正确的)但我可能会错过我使用JsonNodeFactory的方式.对象是否意味着像我在这里所做的那样传递?

JsonNodeFactory factory = JsonNodeFactory.instance;
ObjectNode dataTable = new ObjectNode(factory);
ArrayNode aaData = new ArrayNode(factory);

for (PkgLoad pkgLoad : pkgLoadList) {
    ObjectNode row = new ObjectNode(factory);
    row.put("ounces", pkgLoad.ounces);
    row.put("revolutions", pkgLoad.revolutions);
    aaData.add(row);
}

dataTable.put("aaData", aaData);
Run Code Online (Sandbox Code Playgroud)

java json jackson playframework

28
推荐指数
2
解决办法
5万
查看次数

Java EE中的Facade有什么意义?

我真的不明白外立面的意义.

public abstract class AbstractFacade<T> {

    private Class<T> entityClass;

    public AbstractFacade(Class<T> entityClass) {
        this.entityClass = entityClass;
    }

    protected abstract EntityManager getEntityManager();

    public void create(T entity) {
        getEntityManager().persist(entity);
    }

    public void edit(T entity) {
        getEntityManager().merge(entity);
    }

    public void remove(T entity) {
        getEntityManager().remove(getEntityManager().merge(entity));
    }

    public T find(Object id) {
        return getEntityManager().find(entityClass, id);
    }

    public List<T> findAll() {
        CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
        cq.select(cq.from(entityClass));
        return getEntityManager().createQuery(cq).getResultList();
    }

    public List<T> findRange(int[] range) {
        CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
        cq.select(cq.from(entityClass));
        Query q = getEntityManager().createQuery(cq);
        q.setMaxResults(range[1] - range[0]); …
Run Code Online (Sandbox Code Playgroud)

java design-patterns ejb facade java-ee

17
推荐指数
3
解决办法
2万
查看次数

Firefox不会将此文件下载为CSV格式

我已经尝试了我能想到的一切.我已经改变了mime类型100次.将标题更改了400次.我已经看了几十次堆栈.这在Chrome中运行良好.我在Firefox下载后很快就会认为它是xlsx文件或二进制文件.它甚至作为xlsx打开,但它不认为它是一个csv所以列不是分开的.如果我保存文件(而不是只打开),它甚至没有打开扩展名.我还没有进入IE,所以这让我很担心.

    mime mapping
   <mime-mapping>
        <extension>csv</extension>
        <mime-type>application/vnd.ms-excel</mime-type>
    </mime-mapping> 
Run Code Online (Sandbox Code Playgroud)

我试过text/csv,application/csv,application/binary,application/octet-stream.

public void doDownloadFile() {

            PrintWriter out = null;

            try {

                String fileName = selectedPkgLine.getShortname() + ".csv";

                HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
                HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();

                response.setHeader("Pragma", "public");
                response.setHeader("Expires", "0");
                response.setContentType(request.getServletContext().getMimeType(fileName));
                response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
                response.setHeader("Content-disposition", "attachment; filename=" + fileName + "");
                response.setHeader("Content-Transfer-Encoding", "binary");

                out = response.getWriter();
                CSVWriter writer = new CSVWriter(out);

                List<PkgLoad> pkgLoadList = pkgLoadService.findBetweenDates(selectedPkgLine, startDate, endDate);

                List<String[]> stringList = new ArrayList<String[]>();
                stringList.clear();

                String[] header = {
                    "pkg_load_id",
                    "time_stamp",
                    "ounces",
                    "revolutions", …
Run Code Online (Sandbox Code Playgroud)

java csv servlets

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

选中复选框的分页.复选框仅适用于当前分页页面.jQuery数据表

我正在使用jquery datatables插件.

我只有一个直接的html表格布局.

<table  class="display" id="contactsTable">  
    <thead> 
        <tr>  
            <th>Id</th> 
            <th>Email</th> 
            <th>Name</th> 
            <th>Phone</th>  
            <th>City</th>    
            <th>State</th>    
            <th>Arrival</th>  
            <th>Departure</th> 
            <th>Inserted</th> 
            <th>Check</th> 
        </tr> 
    </thead> 
    <tbody>    
                    <tr>             
            <td>301</td> 
            <td>email address</td>    
            <td>Test</td> 
            <td></td> 
            <td></td> 
            <td></td> 
            <td>July 14 2011</td> 
            <td>July 23 2011</td> 
            <td>April 12 2011 07:05</td> 
            <td><input type="checkbox" name="selected[]" value="301" class="chkbox"/></td> 
        </tr> 
                    <tr>             
            <td>300</td> 
            <td>email</td>    
            <td>Test</td>  
<td></td> 
            <td></td> 
            <td></td>               
            <td>September 02 2011</td> 
            <td>September 10 2011</td> 
            <td>April 11 2011 12:01</td> 
            <td><input type="checkbox" name="selected[]" value="300" class="chkbox"/></td> 
        </tr> 
Run Code Online (Sandbox Code Playgroud)

这是我的提交代码(只是临时).

<input id="submitButton" type="submit" value="Submit" onclick="test()" />
Run Code Online (Sandbox Code Playgroud)

我的javascript将复选框映射到数组.

function test() …
Run Code Online (Sandbox Code Playgroud)

jquery jquery-plugins datatables

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

在Java(API)中合并两个音频文件(不是concat)

嘿家伙我需要将两个音频文件合并在一起.基本上将一个音频文件放在另一个上面并制作一个文件.我已经看到一些关于连接两个音频文件的帖子,但没有关于此.谢谢你的帮助.

java audio

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

是否可以在桌面应用程序中使用EJB 3.1?

这可能吗?有没有人这样做过?如果我使用我在Web应用程序中习惯的东西,我觉得我可以更好地布置我的应用程序.是否可以使用此依赖注入?

如果这是不可能的,或者一个可行的解决方案,任何人都可以指向我使用JPA和EntityManger查询数据库的几个示例项目.谢谢.

java jpa ejb-3.1

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

将元组转换为第一个项目的列表

假设我有一个返回此方法.

Vector[ (PkgLine, Tree) ]()
Run Code Online (Sandbox Code Playgroud)

我想将其转换为PkgLines列表.我想放弃树.我没有在scala库中看到任何可以让我这样做的东西.有人有什么简单的想法吗?谢谢.

scala

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