这是一个实体框架mvc应用程序.该模型的代码如下所示:
public class Login
{
[Key]
public int LoginID { get; set; }
public virtual Therapist Therapist { get; set; }
public virtual Patient Patient { get; set; }
}
public class Patient
{
[Key]
[ForeignKey("Login")]
[Display(Name = "No.")]
public int PatientId { get; set; }
[ForeignKey("Therapist")]
public int TherapistId { get; set; }
[ForeignKey("Therapist")]
public int TherapistId{ get; set; }
public virtual Therapist Therapist { get; set; }
public virtual Login Login { get; set; }
}
public …Run Code Online (Sandbox Code Playgroud) 奇怪的是,我无法弄清楚如何解决这个问题.我有一个tableview,当一个可观察列表的监听器发现有变化时,它会被填充.所以这是代码:
userController.getAuthImpl().listOfMessages.addListener(new ListChangeListener<Message>() {
@Override
public void onChanged(ListChangeListener.Change<? extends Message> c) {
addMessageToTableView(tblvwBottomAdminNotifications, c.getList());
}
});
public void addMessageToTableView(TableView<Message> tblvw, ObservableList<? extends Message> observableList){
tblvw.getItems().clear();
for(Message msg: observableList)
tblvw.getItems().add(msg);
}
public ObservableList<Message> listOfMessages = FXCollections.observableArrayList(_listOfMessages);
Run Code Online (Sandbox Code Playgroud)
这样工作正常,一旦将项添加到listOfMessages,表就会自动更新.我现在要做的一点是,在更新时将列表视图滚动到底部.我尝试将以下行添加到addMessageToTableView方法:
tblvw.scrollTo(tblvw.getItems().size()-1);
Run Code Online (Sandbox Code Playgroud)
并且还尝试向tableview本身添加一个更改侦听器,如下所示:
tblvwBottomAdminNotifications.getItems().addListener(new ListChangeListener<Message>(){
@Override
public void onChanged(javafx.collections.ListChangeListener.Change<? extends Message> c) {
tblvwBottomAdminNotifications.scrollTo(c.getList().size()-1);
}
});
Run Code Online (Sandbox Code Playgroud)
但是两个错误都以同样的方式出现以下消息:
线程"RMI TCP连接(1)-192.168.56.1"中的异常java.lang.IllegalStateException:不在FX应用程序线程上; currentThread = RMI TCP连接(1)-192.168.56.1
我的谷歌技能是JavaFX抱怨我从一个单独的线程访问tableview.我可以理解,但是如何以这样的方式访问它:当tableview确实添加了一个新项目时,它会向下滚动到它?
如果您需要更多信息,请与我们联系.
我有一个自定义异常类,它扩展了Exception类(如下所示).
public class SomeABCException extends Exception
Run Code Online (Sandbox Code Playgroud)
但是,当我SomeABCException在之前Exception在catch块中使用的所有位置使用它时,即使在扩展Exception类本身之后它也不会捕获异常.
例如,如果父/调用方法具有如下的catch块
catch (Exception e) {
TODO something;
}
Run Code Online (Sandbox Code Playgroud)
如果我有一个子方法,我正在运行一些数据库查询.
try {
Some database queries;
} catch (SomeABCException e) {
throw new SomeABCException (e.getMessage(),"I/O or SQL_EXCEPTION");
}
Run Code Online (Sandbox Code Playgroud)
这里如果sql连接失败,catch就无法捕获异常,而是被父/调用者catch块捕获,该块使用System.Exception来捕获它.
在调试期间,它不会转到child方法的catch块中.
请解释一下,我不明白.
我必须多次克隆一个对象.我的对象是不可序列化的.我正在使用以下功能
@SuppressWarnings("unchecked")
public static T cloneThroughJson(T t) {
Gson gson = new Gson();
String json = gson.toJson(t);
return (T) gson.fromJson(json, t.getClass());
}
// ...
Object cloned = cloneThroughJson(someObject);
Run Code Online (Sandbox Code Playgroud)
我发现每次引用同一个对象时都会返回.例如
假设我首先调用它cloneThroughJson(x)
返回Y
我再次在同一个函数中调用它cloneThroughJson(x).它又回来了Y.
你知道如何使用深度克隆克隆java中的非序列化对象吗?
在我的应用程序中,我需要显示货币换算。
例如:
1 ?= 0.015 $
Run Code Online (Sandbox Code Playgroud)
同样,我想显示从 AED 到 USD 的转换。当我尝试时,转换方程会失真。
1 ?.? = 0.99 $
Run Code Online (Sandbox Code Playgroud) 所以我们知道必须初始化局部变量才能在if-else-if构造中使用.例如,以下代码将无法编译.
public class Test {
public static void main (String...args){
double price= 11;
String model ;
if (price>10)
{model ="smartphone";}
else if (price<=11)
{model="not smart phone";}
System.out.println(model);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您将局部变量String模型更改else if (price<=11)为else或初始化为某个随机值,则代码将成功编译.我在这个案例中的问题是"为什么?"
现在,这是一本书的问题,解释是:
"只声明局部变量模型,而不是初始化.变量模型的初始化放在if和else-if结构中.如果在if或else-if结构中初始化变量,编译器无法确定这些条件是否会被评估为真,导致没有初始化局部变量."
即使经过解释,我仍然不明白两件事,
我已经为 Jenkins 安装了Publish over FTP插件。我已经选中了名为“使用 FTP over TLS”的复选框。另一个名为Trusted Certificate的文本框,但我不知道此处设置的值是什么?我如何在这里设置 SSL?我正在使用詹金斯版本。2.13 . 每次都显示以下错误。我的用户名和密码 100% 正确。不知道我在这里做错了什么。
错误:连接或更改目录失败
jenkins.plugins.publish_over.BapPublisherException:无法连接和初始化 FTP 连接。消息:[jenkins.plugins.publish_over.BapPublisherException:无法使用用户名 [xxxxxx] 登录 - 检查用户名和密码]
我的Lumen API更新用户模块中出现此错误.我没有收到$request邮递员的申请价值.它发生在我的UserController,我的其他控制器工作正常.我正在使用该put方法来更新用户.
这是错误:
Request.php第901行中的FatalErrorException:在Lumen API中调用非对象的成员函数parameter()
我的更新功能如下所示:
public function updateUser(Request $request,$user_id)
{
try {
$user = User::findOrFail($user_id);
} catch(ModelNotFoundException $e) {
return "User not found";
}
$user->buyer_id = $request->buyer_id;
Run Code Online (Sandbox Code Playgroud) 我正在开发一个 Web 应用程序,其中我们有一个客户端小程序应用程序,它将检查客户端计算机上是否安装了证书。
但大家都知道 Mozilla 很快就会停止支持小程序。
谁能建议做同样事情的替代选择是什么?
我正在尝试创建一个自签名 RSA-2048-SHA-256 证书 PFX 文件,以便在我的 WCF 请求中使用它进行数据签名。
我使用了一些 openSSL 示例来创建证书 PFX 文件,但即使我将 SHA 算法设置为 256,当我在我的 .net 应用程序中加载它时,我看到该证书的私钥具有以下设置:
KeyExchangeAlgorithm = RSA-PKCS1-KeyEx
SignatureAlgorithm = http://www.w3.org/2000/09/xmldsig#rsa-sha1
Run Code Online (Sandbox Code Playgroud)
当我使用下面的代码来使用此证书时,我收到“无效算法指定的异常”,但如果我将 SHA256CryptoServiceProvider 更改为 SHA1CryptoServiceProvider 一切正常。
string msg = "This is my test message";
X509Certificate2 privateCert = new X509Certificate2("C:\\TEMP\\private.pfx", "12345");
byte[] signature = (privateCert.PrivateKey as RSACryptoServiceProvider).SignData(new UTF8Encoding().GetBytes(msg), new SHA256CryptoServiceProvider());
Run Code Online (Sandbox Code Playgroud)
我只能假设我的证书文件不是用 SHA256 创建的,而是用某种默认的 SHA1 算法创建的。
这些是我用来创建证书的步骤:
openssl req -x509 -days 365 -newkey rsa:2048 -sha256 -keyout key.pem -out cert.pemopenssl pkcs12 -export -in cert.pem -inkey key.pem -out private.pfx我究竟做错了什么?