在Angular文档中,有以下关于组件构造函数中代码的提示(我强调的第二段):
叫进去
ngOnInit虽然可以调用
getHeroes()构造函数,但这不是最佳实践。保留构造函数以进行简单的初始化,例如将构造函数参数连接到属性。构造函数不应该做任何事情。当然,不应像真正的数据服务那样调用向远程服务器发出HTTP请求的函数。
而是
getHeroes()在ngOnInit生命周期挂钩内调用ngOnInit,并在构造HeroesComponent实例后的适当时间让Angular调用。
服务方面呢?Observable在构造函数中进行HTTP调用(只是在本地存储异步请求的启动)是否也很糟糕?服务没有ngOnInit()事件,那么服务的最佳实践是什么?
我想使用替换提交按钮的值Loading….
问题是,当我点击按钮时,我仍然看到…而不是三个点.
这是我的代码:
$("#myid").val("Loading…");
Run Code Online (Sandbox Code Playgroud)
我应该在上面的代码中直接从键盘输入省略号吗?UTF-8安全吗?
我正在使用带有丰富面孔的JSF2 4.我的目标是使用ajax将后端中的方法生成的请求ID显示到输入文本字段中.
这是我的代码片段:
....
<h:outputText value="Drawer No" />
<h:outputText value="*" style="color:#ff0000;"/>
<h:inputText id="drawer" value="#{requestBean.drawerNumber}" required="true"
requiredMessage="Please enter drawer number">
<f:ajax event="change" action="#{requestBean.generateRequestId}"
execute="@form" render="requestId"/>
</h:inputText>
<h:outputText value="Request Id" />
<h:inputText id="requestId" value="#{requestBean.requestId}" readonly="true" required="true" >
</h:inputText>
</td>
<td>
<h:message for="requestId" style="color:red;font-size:10pt"/>
....
Run Code Online (Sandbox Code Playgroud)
豆:
public void generateRequestId(ActionEvent e)
{
FacesContext context = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
String emp=(String) session.getAttribute("loginUser");
System.out.println("inside ajax event" + emp);
try {
requestId = AdminDAO.getRequestId(emp);
} catch (ParseException e1) {
e1.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
一旦调用该方法,它将生成一个请求ID,需要将其呈现回请求ID.
这段代码甚至没有调用方法,如果我用 …
我的 Rocket API 中有以下登录 POST 端点处理程序:
#[post("/login", data = "<login_form>")]
pub fn login_validate(login_form: Form<LoginForm>) -> Result<Redirect, Template> {
let user = get_user(&login_form.username).unwrap();
match user {
Some(existing_user) => if verify(&login_form.password, &existing_user.password_hash).unwrap() {
return Ok(Redirect::to(uri!(home)))
},
// we now hash (without verifying) just to ensure that the timing is the same
None => {
hash(&login_form.password, DEFAULT_COST);
},
};
let mut response = Template::render("login", &LoginContext {
error: Some(String::from("Invalid username or password!")),
});
// TODO: <<<<<<<<<< HOW CAN I SET AN HTTP STATUS CODE …Run Code Online (Sandbox Code Playgroud) Go 编程语言的标准库公开了一个名为 的结构strings.Builder,它允许通过重复连接以有效的方式轻松构建字符串,类似于 C# 或 Java 的StringBuilder.
在 Java 中,我会使用StringBuilder的构造函数来“克隆”对象,如下所示:
StringBuilder newBuffer = new StringBuilder(oldBuffer.toString());
Run Code Online (Sandbox Code Playgroud)
在Go中,我只能看到以下两行方式:
newBuffer := strings.Builder{}
newBuffer.WriteString(oldBuffer.String())
Run Code Online (Sandbox Code Playgroud)
没有其他.Clone()初始化方法(我可能还没有找到)。
是否有另一种方法比我提出的方法更简短/简洁?
我想做的事情如下:
printf('%3.3f%% ', $percent);
Run Code Online (Sandbox Code Playgroud)
但我仍然得到输出:
99.999%
100.000%
Run Code Online (Sandbox Code Playgroud)
我想要像:
99.999%
100.000%
Run Code Online (Sandbox Code Playgroud)
所以它的填充空间小于整个宽度.什么格式说明符可以完成我想要做的事情?
在Java Web项目(在Tomcat&JSF&Spring上运行)上,编写了一个自定义渲染器,即使要转换的值也要调用自定义转换器null,如下所述:JSF Custom Converter未调用null值
但是,SonarQube扫描正在检测import线路上的问题,即:
import com.sun.faces.renderkit.html_basic.TextRenderer;
Run Code Online (Sandbox Code Playgroud)
因为它是一个com.sun.*包而不是标准的Java API包.规则说明指出:
不应使用"sun.*"包中的类(鱿鱼:S1191)
sun.*或com.sun.*包中的类被视为实现细节,而不是Java API的一部分.迁移到新版本的Java时,它们可能会导致问题,因为没有向后兼容性保证.同样,当转移到不同的Java供应商(例如OpenJDK)时,它们可能会导致问题.
这些类几乎总是由应该使用的Java API类包装.
不合规的代码示例
Run Code Online (Sandbox Code Playgroud)import com.sun.jna.Native; // Noncompliant import sun.misc.BASE64Encoder; // Noncompliant
这很有道理,但我找不到这个类的Java API包装器,只找到该类所在的源代码和包...在这种情况下采取的适当措施是什么?