小编vic*_*ugo的帖子

什么进入"MVC"的"控制器"?

我想我理解MVC的基本概念 - 模型包含应用程序的数据和行为,View负责将其显示给用户,Controller负责处理用户输入.我不确定的是控制器中究竟是什么.

让我们说例如我有一个相当简单的应用程序(我专门考虑Java,但我认为相同的原则适用于其他地方).我将我的代码组织成3个叫做的包app.model,app.viewapp.controller.

app.model包中,我有一些反映应用程序实际行为的类.这些extends Observable并使用setChanged()notifyObservers()触发视图以在适当时更新.

app.view包具有一个类(或几个类用于不同类型的显示),它使用javax.swing组件来处理显示.其中一些组件需要反馈到模型中.如果我理解正确,View不应该与反馈有任何关系 - 应该由Controller处理.

那么我实际上在Controller中放了什么?我public void actionPerformed(ActionEvent e)只需要调用Controller中的方法,就可以将其放入View中吗?如果是这样,是否应在控制器中进行任何验证?如果是这样,我如何将错误消息反馈回View - 如果再次通过Model,或者Controller是否应该直接将其发送回View?

如果在视图中完成验证,我应该在Controller中添加什么?

很抱歉这个问题很长,我只想记录我对这个过程的理解,希望有人可以为我澄清这个问题!

java model-view-controller

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

GPL和LGPL开源许可限制

我无法理解开源的使用权限.我在某地读到GPL或LGPL强制要求使用GPL软件的软件也必须是开源的.我想创建一个使用一些开源图像识别库的应用程序.我可以出售这个应用程序,还是必须是开源的?

谢谢!

licensing open-source

102
推荐指数
5
解决办法
6万
查看次数

如何在Java中从控制台读取单个字符(用户键入它)?

当用户在Java中键入时,是否有一种从控制台读取单个字符的简单方法?可能吗?我尝试过这些方法但他们都在等待用户按下回车键:

char tmp = (char) System.in.read();
char tmp = (char) new InputStreamReader(System.in).read ();
char tmp = (char) System.console().reader().read();           // Java 6
Run Code Online (Sandbox Code Playgroud)

我开始认为System.in在按下enter之前不知道用户输入.

java console input

100
推荐指数
5
解决办法
14万
查看次数

LDAP解决了什么?

在我参与的许多项目中,我一直与LDAP保持联系,但事实是,我真的不明白它.我认为它只是一个人员目录,但在我发现它可以包含层次结构中的任何对象之后.

我在我的盒子里安装了openldap,我发现了许多关于安装的教程.

什么是LDAP?LDAP是正确选择的场景是什么?使用它时我应该知道哪些LDAP概念?LDAP的优点是什么?它只是因为旧的应用程序使用它吗?互联网上是否有一个好的文档解释所有这些问题?

更新:补充答案我发现此链接包含像我这样的LDAP新手的快速入门指南.

ldap

60
推荐指数
5
解决办法
7002
查看次数

C#private,static和readonly

我正在审查log4net的一些代码,我遇到了这个.

private static readonly ILog logger = LogManager.GetLogger(typeof(AdminClient));
Run Code Online (Sandbox Code Playgroud)

我想知道为什么你需要私有静态只读.

从我的理解私有意味着变量不能在类外使用,除非有一个访问器方法或获取属性.

static意味着变量仅在此文件中作用域.

readonly意味着您只能从值中读取并且无法分配它.

所以,我在想那个编写这段代码的人.声明它是私有的,因为他们不希望它在类外使用和静态,因此不希望它在文件外部使用.但是,如果有一个get属性会静态阻止这种形式发生.

我想我只能理解readonly,而且只能读取和设置值.

非常感谢任何建议,

c# log4net access-modifiers

24
推荐指数
3
解决办法
9612
查看次数

Java:"[B @ 1ef9157"]背后的语法和含义?二进制/地址?

嘿,我想弄清楚[B @前缀在java中意味着什么. 当我尝试打印字节数组时它们出来了.但是,大小为32和大小为4的字节数组的长度相同.始终"[@ B1234567".

这是什么?此外,它们具有仅打印十六进制值的属性.我知道它不能只是二进制打印,因为会出现随机扩展的ascii字符.

下面是byte []到byte []哈希表映射打印的示例,其中映射由冒号分隔,这些是4字节键和32字节元素的字节数组.

[B@1ef9157:[B@1f82982
[B@181ed9e:[B@16d2633
[B@27e353:[B@e70e30
[B@cb6009:[B@154864a
[B@18aaa1e:[B@3c9217
[B@20be79:[B@9b42e6
[B@16925b0:[B@14520eb
[B@8ee016:[B@1742700
[B@1bfc93a:[B@acb158
[B@107ebe1:[B@1af33d6
[B@156b6b9:[B@17431b9
[B@139b78e:[B@16c79d7
[B@2e7820:[B@b33d0a
[B@82701e:[B@16c9867
[B@1f14ceb:[B@89cc5e
[B@da4b71:[B@c837cd
[B@ab853b:[B@c79809
[B@765a16:[B@1ce784b
[B@1319c:[B@3bc473
Run Code Online (Sandbox Code Playgroud)

java syntax binary hex

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

JSTL taglib URI已经过时了?

我一直在查看Spring MVC教程并从那里复制了这个小的JSP代码:

<%@ page session="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html>
    <head><title>Training, Inc.</title></head>
    <body>
        <h2><c:out value="${message}" /></h2>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

有一个字符串设置为消息,而c:out标签只是按字面打印

$ {}消息

我想了一会儿,直到我记得我之前遇到的问题,并将taglib URI更改为:

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
Run Code Online (Sandbox Code Playgroud)

这解决了我的小问题

前段时间我遇到了类似的XSLT转换问题,但在这种情况下,我不得不从http://java.sun.com/jstl/xml更改为http://java.sun.com/jsp/jstl/xml

根据这个链接,我的春天示例应该像我从spring教程粘贴时一样工作

问题是:你们中的任何人都知道这些taglib URI混淆的记录在哪里?为什么在某些情况下我从http://java.sun.com/jsp/jstl获得了最新版本,而在其他版本中我从http://java.sun.com/jstl获得了最新版本

java jstl

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

一次将1000多条记录保存到数据库中

我目前正在使用NHibernate.我有一种情况需要将一堆记录保存到数据库中,如下所示:

var relatedTopics = GetRelatedTopics(topic);
foreach (var relatedTopic in relatedTopics /* could be anywhere from 10 - 1000+ */)
{
    var newRelatedTopic = new RelatedTopic { RelatedTopicUrl = relatedTopic, TopicUrl = topic.Name };
    _repository.Save(newRelatedTopic);
}
Run Code Online (Sandbox Code Playgroud)

当有大量的记录需要保存时,这显然非常非常繁重,不得不多次访问数据库.什么是更好的方法?我可以做一些批量更新吗?我最好使用DataSet吗?

谢谢

nhibernate ado.net batch-processing

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

Mac OS X免费C编译器

是否有适用于OS X的小型免费C或C++编译器,如TCC?

Xcode不小,或像TCC,AFAIK一样简单.

我正在寻找类似GCC二进制文件或OS X TCC的东西.

c c++ compiler-construction macos

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

与其他Java Web框架相比,Grails的优势是什么?

我曾经使用过JSF,Spring MVC和Struts,我认为我在这些框架上取得了很好的成绩.最近我听说很多与我合作的优秀开发人员正在学习Grails并在他们的项目中使用它.

Grails比其他框架有什么实际优势?除了我知道其他框架之外,还值得学习吗?什么是Grails的嗡嗡声,是因为Groovy?

注意:我在SO中进行了研究,我发现的唯一相关问题是这个,并没有提到Grails

java grails java-ee

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